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