Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用xmlstarlet和特定属性解析xml_Xml_Xpath_Xmlstarlet - Fatal编程技术网

使用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