使用xmlstarlet和特定属性解析xml
我尝试过使用使用xmlstarlet和特定属性解析xml,xml,xpath,xmlstarlet,Xml,Xpath,Xmlstarlet,我尝试过使用xmlstarlet,但遇到了困难。我有以下XML提要 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RESPONSE VERSION="L100" REQUEST="show volume-statistics"> <OBJECT basetype="volume-statistics" name="volume-statistics" oid="1" format="rows"&
xmlstarlet
,但遇到了困难。我有以下XML提要
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RESPONSE VERSION="L100" REQUEST="show volume-statistics">
<OBJECT basetype="volume-statistics" name="volume-statistics" oid="1" format="rows">
<PROPERTY name="volume-name" display-name="Name">VOL0</PROPERTY>
<PROPERTY name="volume-IOPS" display-name="IOPS">100</PROPERTY>
</OBJECT>
</RESPONSE>
示例输出
100
您可以使用单个XPath表达式来执行此操作,该表达式检索包含“VOL0”name属性的
元素,然后选择相应的IOPS属性
xmlstarlet sel -t -v '
/RESPONSE/OBJECT[PROPERTY[@name="volume-name"]="VOL0"]
/PROPERTY[@name="volume-IOPS"]' test.xml
请始终告诉我们您收到了哪些错误消息。您应该已经意识到括号是不匹配的(由不执行代码但仍等待输入的shell)。修复后,
xmlstarlet
会打印一条通知,指出您的第一个XPath表达式无效(谓词前面的/
不应该在那里)。非常感谢。非常感谢你的帮助。
xmlstarlet sel -t -v '
/RESPONSE/OBJECT[PROPERTY[@name="volume-name"]="VOL0"]
/PROPERTY[@name="volume-IOPS"]' test.xml