基于静态与字符串数据的XSLT节点集

时间:2012-11-14 01:52:52

标签: xslt-1.0

这适用于静态数据:

<xsl:variable name="ExtensionData3">
<images>
    <image id="10842" width="2450" height="2200" default="1" />
    <image id="10543" width="2450" height="2200" default="0" />
    <image id="10544" width="2450" height="2200" default="0" />
</images>
</xsl:variable>
<xsl:value-of select="msxsl:node-set($ExtensionData3)/images/image[@default='1']/@id" />

如何使用动态数据?:

<xsl:variable name="ExtensionData3">
<xsl:value-of select="XMLData" />
</xsl:variable>
<xsl:value-of select="msxsl:node-set($ExtensionData3)/images/image[@default='1']/@id" />

1 个答案:

答案 0 :(得分:0)

  

如何使用动态数据?:

<xsl:variable name="ExtensionData3">
  <xsl:value-of select="XMLData" />
</xsl:variable>
<xsl:value-of select="msxsl:node-set($ExtensionData3)/images/image[@default='1']/@id"
     

/&GT;

错误在此行

  <xsl:value-of select="XMLData" />

输出(创建一个文本节点)当前节点的第一个XMLData子节点的字符串值。

但是你不想要字符串 - 你希望复制节点

正确的方法是

   <xsl:copy-of select="XMLData" />

更好的是,在这种情况下,您根本不需要创建RTF然后将其转换为临时树 - 只需使用

<xsl:variable name="ExtensionData3" select="XMLData"/>