如何 select 使用 xmllint 的所有节点,其中同一级别的节点具有特定值?
How to select all nodes using xmllint where node on same level has certain value?
考虑以下 example.xml
文件
<all>
<item>
<name>foo</name>
<value>5</value>
<readonly>true</readonly>
</item>
<item>
<name>boo</name>
<value>2</value>
<readonly>false</readonly>
</item>
<item>
<name>bar</name>
<value>9</value>
<readonly>true</readonly>
</item>
</all>
我想列出 foo
和 bar
,因为它们是 readonly
项。这对我没用:
cat example.xml | xmllint --xpath "all/item[readonly/text() = "true"]/name" -
我收到了:
XPath set is empty
您可以尝试使用这个 xpath :
/all/item[readonly='true']/name
您的初始 xpath 看起来也不错,因为有问题的 XML 作为输入发布,只是您可能需要在 xpath 参数值中将双引号更改为单引号:
--xpath "all/item[readonly/text() = 'true']/name"
考虑以下 example.xml
文件
<all>
<item>
<name>foo</name>
<value>5</value>
<readonly>true</readonly>
</item>
<item>
<name>boo</name>
<value>2</value>
<readonly>false</readonly>
</item>
<item>
<name>bar</name>
<value>9</value>
<readonly>true</readonly>
</item>
</all>
我想列出 foo
和 bar
,因为它们是 readonly
项。这对我没用:
cat example.xml | xmllint --xpath "all/item[readonly/text() = "true"]/name" -
我收到了:
XPath set is empty
您可以尝试使用这个 xpath :
/all/item[readonly='true']/name
您的初始 xpath 看起来也不错,因为有问题的 XML 作为输入发布,只是您可能需要在 xpath 参数值中将双引号更改为单引号:
--xpath "all/item[readonly/text() = 'true']/name"