我正在寻找正确的 xpath 表达式来选择最近祖先具有正确属性值的所有节点,而不是选择最近祖先具有显式“不选择”属性值的那些节点。直观解释:对于每个分支,沿着它的路径到根,第一次遇到某个属性时应该决定它是否在选择中。
<xyz select="yes">
<blabla>this one's in</blabla>
<qwerty select="no">this one's out
<foobar>out please!</foobar>
<gettingoutofnames select="yes">in again!</gettingoutofnames>
</qwerty>
</xyz>
示例可以出现在 XML 结构中的任何位置。
元素的名称可以是任何东西。'select="yes"' 和 'select="no"' 可以以任何顺序跟随,但最深的顺序是决定性的它的后代。
我在想这样的事情:
//*[@select="yes"]//ancestor::*[not(@select="no")]
但这并不是全部。任何帮助表示赞赏!