1

我有一个 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= webout1。

我尝试了一个代码,但它不起作用。我的代码就像

<xsl:value-of select="$result//product/id"/>
4

3 回答 3

2

听起来你需要写一个这样的模板

<xsl:template match="product[webout=1]">

处理所有相关product元素。

除非您描述您做得更好的地方,否则我们真的无法为您提供更多帮助。你的变量$result是从哪里来的?set-node除非您在 XSLT 转换器中有扩展,否则您无法检查这样的变量的内容。

于 2013-05-16T11:18:20.263 回答
0

你可以通过for-eachlike来过滤

<xsl:for-each select="/root/product[./webout=1]">
     <xsl:value-of select="id"/>
</xsl:for-each>
于 2013-05-16T10:26:44.503 回答
-1

在 xslt "1.1" 中使用类似的东西$result//product[webout=1]/id,否则使用 node-set() 扩展函数来获取输出。

于 2013-05-16T10:19:18.847 回答