我正在寻找.NET中的XPath,它只选择最上面的节点,其中包含只有一个终端(无子机)节点
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_clear_white_24dp"
android:drawableRight="@drawable/ic_clear_white_24dp"
android:drawableBottom="@drawable/ic_clear_white_24dp"
android:drawableTop="@drawable/ic_clear_white_24dp"
/>
如果可能的话,我想摆脱无用的嵌套项目并推广终端:
A <--
B
C
D
E <--
F
G <--
H <--
I
J
C, F, G, J are terminal
我想我已经接近了
C to A position; F to E position; G remains in place; ...
可以通过
选择终端.//*[count(descendant-or-self::terminal)=1] [ not(ancestor::*[count(.//terminal)=1]) ]
答案 0 :(得分:0)
只是//*[count(descendant-or-self::*)=1]
出了什么问题?
% cat uppermost.xml
<R>
<A><B><C/></B></A>
<D>
<E><F/></E>
<G/>
<H><I><J/></I></H>
</D>
</R>
% xpquery '//*[count(descendant-or-self::*)=1]' uppermost.xml
<C/>
<F/>
<G/>
<J/>
%