使用XSLT在XML文件中查找数据?

时间:2013-05-16 09:59:55

标签: xml xslt

我有一个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"/>

3 个答案:

答案 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的内容,否则使用no​​de-set()扩展函数来获取输出。