从 XML 数组中提取单个值



我有以下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(。我想知道是否有一个 Xpath 语句可以与xmllint一起使用?

使用谓词选择正确的extension_attribute应该很容易。

此 XPath:

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

返回:

<value>auidhg</value>

如果您只想要文本值,则可以选择文本节点...

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

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

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

这些中的任何一个都会返回:

auidhg

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

最新更新