鉴于下面的XML文件,我尝试计数(并且一旦起作用,请选择)类型= 1和状态= 2的卡的数量,但是我找不到使用XPath的解决方案,因为我从未使用XSL和我很早以前就在Saxon上使用过XPath,我想我对此没有足够的了解...(XSLT 3.0)
感谢您的帮助
source.xml
<?xml-stylesheet type="text/xsl" href="process.xsl"?>
<root>
<card>
<Prop prop_name="number" val="0001" />
<Prop prop_name="type" val="1" />
<Prop prop_name="state" val="1" />
</card>
<card>
<Prop prop_name="number" val="0002" />
<Prop prop_name="type" val="1" />
<Prop prop_name="status" val="1" />
</card>
<card>
<Prop prop_name="number" val="0003" />
<Prop prop_name="type" val="1" />
<Prop prop_name="status" val="2" />
</card>
<card>
<Prop prop_name="number" val="0004" />
<Prop prop_name="type" val="1" />
<Prop prop_name="status" val="2" />
</card>
</root>
process.xsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes" />
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:variable name="nb_active_cards" select="count(//card/[Prop[@prop_name='type' and @val='1'] and Prop[@prop_name='status' and @val='2']])"/>
<xsl:value-of select="$nb_active_cards" />
</xsl:template>
</xsl:stylesheet>