我有一个简单的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<json encoding="UTF-8" has-bom="false" html-processing-enabled="true" replaceEntities="true" version="1.0">
<map>
<element isString="1" text="key">GREETING_ID</element>
<element isString="1" text="value">hello</element>
<element isString="1" text="comment">this is a greeting</element>
<element isString="0" text="maxLength">5</element>
<element isString="0" text="needsTranslation">true</element>
</map>
<map>
<element isString="1" text="key">FAREWELL_ID</element>
<element isString="1" text="value">bye</element>
<element isString="1" text="comment">this is a farewell</element>
<element isString="0" text="maxLength">10</element>
<element isString="0" text="needsTranslation">false</element>
</map>
</json>
我想选择属性为text="value"的Element节点,但前提是在同一Map节点中,属性为text=needsTranslation的元素的文本等于"true"。我刚从XPath开始我的旅程,我甚至不知道从哪里开始。
您可以尝试类似的操作(我已经用您的XML测试了它,它返回hello
(:
//map[element[@text="needsTranslation" and text()="true"]]/element[@text="value"]
此//map[element[@text="needsTranslation" and text()="true"]]
选择
具有属性text="needsTranslation"的Map节点元素的文本等于"true">
,然后/element[@text="value"]
选择
具有属性text="value"的元素节点