我有XML,我想用minOccur =" 1"选择节点。但是所有的子节点都没有这样的属性。
我的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 =&#34; 7&#34;返回,但结果是两个节点都返回。 XPath出了什么问题?谢谢,
答案 0 :(得分:3)
我有XML,我想用
minOccurs="1"
选择节点,但所有子节点都没有这样的属性。
我认为你的意思是:
//xnode[@type="parent" and @minOccurs="1" and not(child/@minOccurs)]
not(child/@minOccurs)
的含义:“没有@minOccurs
属性的孩子。”
child[not(@minOccurs)]
的含义:“有一个孩子没有@minOccurs
属性。”