Bash:
处理XML
如何操作:
以下是在Bash中解析XML的方法。使用工具?xmllint和xmlstarlet。遍历XML元素?当然可以。示例与样本输出:
# 假设已安装xmlstarlet
# 通过以下命令安装:apt-get install xmlstarlet
# 解析XML内容
cat <<EOF > sample.xml
<fruits>
<fruit name="Apple"/>
<fruit name="Banana"/>
</fruits>
EOF
# 使用xmlstarlet提取名称
xmlstarlet sel -t -m "//fruit" -v "@name" -n sample.xml
# 输出应当为:
# Apple
# Banana
深入了解
回到90年代,XML作为SGML的更简单替代品出现,但比HTML更有结构。现在,它有了伴侣——例如JSON、YAML。但XML仍在发挥作用,尤其是在配置和基于SOAP的网络服务中。
在工具方面,xmllint适用于XML验证、xpath查询。xmlstarlet是XML操作的多功能刀——查询、编辑、验证、转换。在bash脚本中,它们是XML任务的超级英雄。
内部机制方面,xmllint使用libxml2——XML C解析器。它速度快,但错误消息?难以理解。至于xmlstarlet?递归模板和EXSLT支持。思维挑战,但功能强大。
另请参阅
- xmlsoft.org:Libxml2和xmllint相关内容。
- Stack Overflow:现实世界的问题和解决方案。
- W3Schools XML教程:XML的基础知识。