从 XML 数组中提取单个值

Extracting single value from XML array

我有以下 XML:

<computer>
<extension_attributes>
    <extension_attribute>
      <id>22</id>
      <name>aname</name>
      <type>String</type>
      <multi_value>false</multi_value>
      <value>auidhg</value>
    </extension_attribute>
    <extension_attribute>
      <id>23</id>
      <name>ap</name>
      <type>String</type>
      <multi_value>false</multi_value>
      <value>d3HtVD</value>
    </extension_attribute>
</extension_attributes>
</computer>

我想提取名称为 "aname" 的扩展属性项的值(即我想要值 auidhg)。我想知道是否有可以与 xmllint 一起使用的 Xpath 语句?

这个应该很容易用predicate到select右边extension_attribute.

这个 XPath:

//extension_attribute[name='aname']/value

returns:

<value>auidhg</value>

如果你只想要文本值,你可以select文本节点...

//extension_attribute[name='aname']/value/text()

或使用string() or normalize-space()...

normalize-space(//extension_attribute[name='aname']/value)

任何这些 return:

auidhg

有关 string() 和 normalize-space() 函数的更多详细信息,以及它们何时比 selecting text() 更可取,请参阅我上面的链接。