我有一个XML,我需要使用xslt从中找到一些数据,这是XML
<root>
<product>
<id>134021</id>
<bulkdiscountpricelist ></bulkdiscountpricelist>
<webout extra="webout">1</webout>
</product>
<product>
<id>134022</id>
<bulkdiscountpricelist ></bulkdiscountpricelist>
<webout extra="webout">0</webout>
</product>
<product>
<id>134023</id>
<bulkdiscountpricelist ></bulkdiscountpricelist>
<webout extra="webout">1</webout>
</product>
<product>
<id>134023</id>
<bulkdiscountpricelist ></bulkdiscountpricelist>
<webout extra="webout">0</webout>
</product>
</root>
我想使用XSLT检查id
= 1的每个webout
。
我尝试了一段代码,但它没有用。我的代码就像
<xsl:value-of select="$result//product/id"/>
答案 0 :(得分:2)
听起来你需要写一个这样的模板
<xsl:template match="product[webout=1]">
处理所有相关的product
元素。
除非你描述你做得更好,否则我们无法真正帮助你。你的变量$result
来自哪里?除非在XSLT转换器中有set-node
扩展名,否则无法检查变量的内容。
答案 1 :(得分:0)
您可以按照for-each
<xsl:for-each select="/root/product[./webout=1]">
<xsl:value-of select="id"/>
</xsl:for-each>
答案 2 :(得分:-1)
在xslt“1.1”中使用类似$result//product[webout=1]/id
的内容,否则使用node-set()扩展函数来获取输出。