XSLT - 获取具有相同名称的所有节点的值

时间:2014-11-23 12:54:41

标签: xml xslt

我有下一个XML:

<OPTION>
  <PRICES>
     <PRICE>
        <PRICE_DATE>25 Nov 2014</PRICE_DATE>
     </PRICE>
     <PRICE>
         <PRICE_DATE>26 Nov 2014</PRICE_DATE>
      </PRICE>
  </PRICES>
 </OPTION>

在我的XSLT中,我需要所有PRICE_DATE(2014年11月25日和2014年11月26日)的价值。

      <xsl:value-of select="PRICES//PRICE_DATE"/>

但返回值仅为2014年11月25日。

如何获取具有相同名称的所有节点的值?

1 个答案:

答案 0 :(得分:1)

您需要使用像Saxon 9或XmlPrime这样的XSLT 2.0处理器并确保样式表具有version="2.0",因为在这种情况下您应该获得两个值或使用XSLT 1.0处理器,您需要使用{{1分别<xsl:for-each select="PRICES//PRICE_DATE"><xsl:value-of select="."/></xsl:for-each>确保处理和输出所有选定的节点。对于XSLT 1.0,<xsl:apply-templates select="PRICES//PRICE_DATA"/>元素仅输出第一个选定节点的字符串值。