<document>
<para>
<heading id="1" type="new" level="1" />
<span />
<heading id="2" type="new" level="2" />
<span />
</para>
<para>
<heading id="3" type="new" level="1" />
<span />
<heading id="4" type="new" level="2" />
<span />
</para>
<para>
<heading id="5" type="old" level="2" />
<span />
</para>
<para>
<heading id="6" type="old" level="2" />
<span />
</para>
<para>
<heading id="7" type="old" level="2" />
<span />
</para>
<para>
<heading id="8" type="old" level="2" />
<span />
</para>
<para>
<span />
</para>
</document>
你好,
我正在Javascript中逐节点解析上述XML。假设我当前在“ heading id ='8'”节点上,我将如何向后看,并找到将其级别设置为“ 2”的第一个节点(与我当前正在解析的节点上的级别相同) )并使用XPath表达式将类型设置为“新”?
因此,在上面的示例中,必须选择id =“ 4”的元素。
谢谢!
您可以使用preceding
axis并使用index仅返回最接近的前一个元素:
preceding::*[@level='2' and @type='new'][1]
输出 :
<heading id="4" level="2" type="new"/>
在演示中,我首先使用//*[@id='8']
来选择元素id=8
,以模拟上下文元素,然后使用上述XPath继续选择目标元素。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句