【发布时间】:2017-02-17 09:32:28
【问题描述】:
我有一个这样的xml,
<doc>
<chap>
<sec originator="ABC">
<app originator="body">
<sec originator="body">
<p>text</p>
</sec>
</app>
</sec>
</chap>
<chap>
<chap>
<app originator="DEF">
<sec originator="body">
<sec>
<p>text2</p>
</sec>
</sec>
</app>
</chap>
</chap>
<sec originator="GHI">
<sec originator="body">
<p>text</p>
</sec>
</sec>
<app originator="KLM">
<sec>
<sec>
<p>text2</p>
</sec>
</sec>
</app>
</doc>
我已经为<p> 节点编写了模板,我需要从中获取最远距离的祖先<sec> 或<app> 节点originator 属性值。
我的 xpath 是
//p/(ancestor::app[@originator][last()] | ancestor::sec[@originator][last()])/@originator
这将选择originator属性值ABC, body, DEF, body, GHI, KLM..但我需要的是ABC, DEF, GHI, KLM。
如何更改我的 xpath 以获得最大距离 <sec> 或 <app> 节点 originator 属性值
【问题讨论】: