需要计算包含的文件数量
//SIGNOFF/ACCOMPBY@AUTH="M"
//SIGNOFF/INSPBY@AUTH="I"
输入XML:
<SIGNOFF ID="S0001">
<ACCOMPBY ID="JCAT0001" AUTH="M"/>
<INSPBY ID="JCIT0001" AUTH="I"/>
</SIGNOFF>
一直在玩这样的事情...
//SIGNOFF/ACCOMPBY[contains (@AUTH, 'M')]/INSPBY[contains (@AUTH, 'I')]/ancestor::TASKCARD/@CARDNBR/concat("",.)
非常感谢朝着正确方向的任何观点!
您的问题尚不清楚,但我会尝试一下。假设输入文档更明智(就包含正例和负例而言,更明智):
<root>
<SIGNOFF ID="YES">
<ACCOMPBY ID="JCAT0001" AUTH="M"/>
<INSPBY ID="JCIT0001" AUTH="I"/>
</SIGNOFF>
<SIGNOFF ID="NO">
<ACCOMPBY ID="JCAT0001" AUTH="OTHER"/>
<INSPBY ID="JCIT0001" AUTH="I"/>
</SIGNOFF>
<SIGNOFF ID="NO">
<ACCOMPBY ID="JCAT0001" AUTH="M"/>
<INSPBY ID="JCIT0001" AUTH="OTHER"/>
</SIGNOFF>
</root>
您可以使用以下XPath表达式:
//SIGNOFF[ACCOMPBY/@AUTH = 'M' and INSPBY/@AUTH = 'I']
这只会产生一个结果,一个SIGNOFF
元素:
<SIGNOFF ID="YES">
<ACCOMPBY ID="JCAT0001" AUTH="M"/>
<INSPBY ID="JCIT0001" AUTH="I"/>
</SIGNOFF>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句