xmllint:使用从列表中获取项目
xmllint: Get an item from a list using
我阅读了很多关于类似问题的 xmllint 答案,但 none 似乎适用于我的具体情况(也许我错过了)。无论如何,我有以下XML:
<?xml version="1.0"?>
<items>
<item>
<name>Name 1</name>
<value>3</value>
</item>
<item>
<name>Name 2</name>
<value>4</value>
<othervalue>5</othervalue>
</item>
</items>
我想从"item"中select"value"一个特定的名字,但是当我输入
xmllint --xpath '//items/item[@name="Name 1"]' test.xml
我得到:
XPath set is empty
-:1: parser error : Document is empty
我怀疑是因为 "name" 不是 "item" 标签内的 属性,但我不确定如何处理,有没有办法遍历项目和检查每个名称(也许使用 bash 脚本)?
name
不是一个属性,所以它不应该以 @
为前缀(attribute::
的 abbreviated syntax)。
尝试:
/items/item[name="Name 1"]/value
我阅读了很多关于类似问题的 xmllint 答案,但 none 似乎适用于我的具体情况(也许我错过了)。无论如何,我有以下XML:
<?xml version="1.0"?>
<items>
<item>
<name>Name 1</name>
<value>3</value>
</item>
<item>
<name>Name 2</name>
<value>4</value>
<othervalue>5</othervalue>
</item>
</items>
我想从"item"中select"value"一个特定的名字,但是当我输入
xmllint --xpath '//items/item[@name="Name 1"]' test.xml
我得到:
XPath set is empty
-:1: parser error : Document is empty
我怀疑是因为 "name" 不是 "item" 标签内的 属性,但我不确定如何处理,有没有办法遍历项目和检查每个名称(也许使用 bash 脚本)?
name
不是一个属性,所以它不应该以 @
为前缀(attribute::
的 abbreviated syntax)。
尝试:
/items/item[name="Name 1"]/value