xmllint:使用列表从列表中获取项目

时间:2017-07-21 17:15:05

标签: xml xpath xml-parsing xmllint

我读了很多关于类似问题的xmllint答案,但似乎没有一个适用于我的具体案例(也许我错过了)。无论如何,我有一个以下的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”中选择“value”,但是当我输入

xmllint --xpath '//items/item[@name="Name 1"]' test.xml

我明白了:

XPath set is empty
-:1: parser error : Document is empty

我怀疑因为“name”不是“item”标签内的属性,但是我不确定如何处理它,是否有办法迭代项目并检查每个项目的名称(使用bash脚本)也许)?

1 个答案:

答案 0 :(得分:1)

name不是属性,因此不应以@为前缀(attribute::abbreviated syntax)。

尝试:

/items/item[name="Name 1"]/value