具有多个条件的XPath跟随兄弟

Dav*_*ard 2 xpath

我有以下xml文档.我正在尝试选择任何具有相同value2的兄弟并且value3未关闭的子项.

<root>
  <child>
    <value1>Type A</value1>
    <value2>Class 1</value2>
    <value3>Active</value3>
  </child>
  <child>
    <value1>Type B</value1>
    <value2>Class 1</value2>
    <value3>Closed</value3>
  </child>
  <child>
    <value1>Type C</value1>
    <value2>Class 2</value2>
    <value3>Active</value3>
  </child>
  <child>
    <value1>Type D</value1>
    <value2>Class 2</value2>
    <value3>Active</value3>
  </child>
  <child>
    <value1>Type E</value1>
    <value2>Class 3</value2>
    <value3>Active</value3>
  </child>
</root>
Run Code Online (Sandbox Code Playgroud)

我的尝试是:

// child [following-sibling :: child/value2 = value2 and value3!='Closed']

但是这没有将多个条件应用于下一个兄弟函数的期望结果.

有任何想法吗?

Tom*_*lak 6

//child[value2 = following-sibling::child[not(value3 = 'Closed')]/value2]
Run Code Online (Sandbox Code Playgroud)

要适用于任何兄弟,following-sibling请将preceding-sibling轴和轴联合起来.

//child[value2 = (following-sibling::child | preceding-sibling::child)[not(value3 = 'Closed')]/value2]
Run Code Online (Sandbox Code Playgroud)