【发布时间】:2016-06-07 20:02:54
【问题描述】:
如何在给定的 xml 上执行以下查询:
- if(task1=cde && task2=abc) 我会得到 id=XYZ-987
- if((task1=abc && task2=efg) || task5=nop) 我会得到 id=ABC-123,XYZ-987,RST-567
这里是 XML:
<node1>
<node2>
<node3>
<id>ABC-123</id>
<condition>
<task name="task1" operation="and" value="abc" />
<task name="task2" operation="and" value="efg" />
<task name="task3" operation="and" value="hij" />
<task name="task4" operation="or" value="klm" />
<task name="task5" operation="and" value="nop" />
<task name="task6" value="uvw" />
</condition>
</node3>
<node3>
<id>XYZ-987</id>
<condition>
<task name="task1" operation="and" value="cde" />
<task name="task2" operation="and" value="abc" />
<task name="task5" operation="and" value="nop" />
</condition>
</node3>
<node3>
<id>RST-567</id>
<condition>
<task name="task1" operation="and" value="abc" />
<task name="task2" operation="and" value="efg" />
<task name="task8" operation="and" value="jkl" />
<task name="task9" operation="and" value="rst" />
<task name="task10" value="xyz" />
</condition>
</node3>
<node3>
<id>PQR-345</id>
<condition>
<task name="task1" operation="and" value="ijk" />
<task name="task2" operation="and" value="klm" />
<task name="task8" operation="and" value="jkl" />
<task name="task9" operation="and" value="rst" />
</condition>
</node3>
</node2>
</node1>
我尝试了以下规则,但结果为空
String expression = "/node1/node2/node3/id[following-sibling::condition/task[(@name='task1' and @value='cde') and (@name='task2' and @value='abc')]]"
我从上面得到了上面的表达式 How to parse XML using XPATH
以上两种情况的表达方式是什么?
【问题讨论】:
标签: android xml xpath xml-parsing