我有以下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(( 更可取,请参阅上面的链接。