我有一些像这样的XML:
<engine-set>
<engine host-ref="blah1.com">
<property name="foo" value="true"/>
<property name="bar" value="true"/>
</engine>
<engine host-ref="blah2.com">
<property name="foo" value="true"/>
<property name="bar" value="false"/>
</engine>
</engine-set>
我希望匹配所有具有子节点属性的引擎元素,其名称等于“bar”,并且值等于“true” . 我发现我的XML中出现“true”的事实导致我的条件总是在XPath表达式中评估为true . 有办法吗?我正在使用Python和lxml .
EDIT:
我的xpath表达式是(不起作用)是:// engine [(property / @ name ='bar'和property / @ value =“true”)]
谢谢,
3 回答
这是:
现在变成:
更具体:
最后:
所以你说的
给你太多结果?因为对我来说它只给出一个 .
您尝试了什么XPath表达式?
以下似乎在获取"blah1.com"但不是"blah2.com"时效果很好:
//engine[property[@value="true"][@name="bar"]]
请记住,您需要将参数测试值包含在引号中 .