XML I :(例如购物车,图片库)
<list1>
<entry>
...
<items>
<item id="1"></item>
<item id="2"></item>
<item id="3"></item>
</items>
</entry>
</list1>
XML II :( =相关项目)
<list2>
<entry id="1">
...
<visibility>
<item value="public">Public</item>
</visibility>
</entry>
<entry id="3">
...
<visibility>
<item value="private">Private</item>
</visibility>
</entry>
<entry id="5">
...
<visibility>
<item value="public">Public</item>
</visibility>
</entry>
</list2>
注意:list2中的ID可能匹配与否......
如何获取列表1中具有ID列表2和/ visibility / item / @ value ='public'的项目数?
答案 0 :(得分:1)
使用XSLT 1.0,您可以使用count(/list1/entry/item[@id = document('xml2.xml')/list2/entry[visibility/item/@value = 'public']/@id])
。
使用XSLT 2.0一键
<xsl:template name="k1" match="list2/entry[visibility/item/@value = 'public']" use="@id"/>
然后
count(/list1/entry/item[key('k1', @id, document('xml2.xml'))])
使查找更有效率。