XPATH:选择具有特定属性和子节点的节点没有特定属性
问题描述:
我有XML,我希望选择具有minOccur =“1”的节点,但所有子节点都没有这样的属性。XPATH:选择具有特定属性和子节点的节点没有特定属性
我XPATH:
//xnode[@type="parent" and @minOccurs="1" and ./child[not(@minOccurs)] and ./child[not(@or)] and ./not(ors) ]
XML:
<root>
<xnode type="parent" id="1" name="Date" maxOccurs="1" minOccurs="1">
<Othertags id="2" language="FR" name="Date"/>
<child id="3" name="dateone" maxOccurs="1" value="DONE">
<def id="4" language="EN" value="this is date one"/>
</child>
<child id="5" name="datetwo" maxOccurs="1" minOccurs="1" value="DTWO">
<def id="6" language="EN" value="this is date two"/>
</child>
</xnode>
<xnode type="parent" id="7" name="Time" maxOccurs="1" minOccurs="1">
<Othertags id="8" language="FR" name="time"/>
<child id="9" name="timeone" maxOccurs="1" value="TONE">
<def id="10" language="EN" value="this is time one"/>
</child>
<child id="11" name="timetwo" maxOccurs="1" value="TTWO">
<def id="12" language="EN" value="this is time two"/>
</child>
</xnode>
</root>
我预计只有第二点:ID = “7” 返回,但事实证明,两个节点返回。 XPath出了什么问题?谢谢,
答
我有XML,我想选择节点与但所有的子节点没有这样的属性。
我想你的意思:
//xnode[@type="parent" and @minOccurs="1" and not(child/@minOccurs)]
什么not(child/@minOccurs)
表示:“有一个@minOccurs
属性没有孩子。”
什么child[not(@minOccurs)]
是指:“有一个孩子没有@minOccurs
属性。”
是的,辉煌! – dellair