XPath:是否可以组合查询

Chr*_*oph 5 xml xpath

考虑以下XML:

<root>
  <steps>
    <step>1</step>
    <step>2</step>
    <step>3</step>
    <step>4</step>
  </steps>
  <stepDetails step="1">Details</stepDetails>
  <stepDetails step="2">Details</stepDetails>
  <stepDetails step="3">Details</stepDetails>
</root>
Run Code Online (Sandbox Code Playgroud)

我需要做的是找到没有相应stepDetails的所有步骤.在上面的示例中,仅返回"<step> 4 </ step>"节点.

现在,我知道我可以通过查询所有步骤,迭代集合并为每次迭代执行另一个查询来做到这一点.我希望只用一个查询就可以做到这一点.也许使用类似SQL的IN语句和子查询.

任何想法或提示将非常感激.

thnx,Christoph

Mik*_*lov 15

试试这个:

/root/steps/step[not(. = /root/stepDetails/@step)]
Run Code Online (Sandbox Code Playgroud)