XSL变量不会引入值

时间:2013-03-16 00:50:11

标签: xml xslt

我有这个xslt文件:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">

    <xsl:output method="xml" indent="yes" encoding="utf-8"
        omit-xml-declaration="yes"/>

    <xsl:variable name="desc" select="//myNode[@objectId='desc']/@select" />
    <xsl:variable name="largeImage" 
          select="//myNode[@objectId='largeImage']/@select" />

    <xsl:template match="/">

        <xsl:value-of select="$largeImage" />          
        <xsl:value-of select="$desc" />

    </xsl:template>
</xsl:stylesheet>

使用这个xml:

<root>
    <myNode type="popup" link="image" label="Large Image:"
        objectId="largeImage" customAttribute="No" />  
    <myNode type="editor" label="Description:" objectId="desc" required="yes"/>
</root>

出于某种原因,该变量适用于显示desc的值,而不是largeImage

任何人都知道我在XSLT中做错了什么?

1 个答案:

答案 0 :(得分:0)

预期结果是什么?如果要显示“大图像:”和“描述:”,这将起作用:

<xsl:variable name="desc" select="//myNode[@objectId='desc']/@label" />
<xsl:variable name="largeImage" 
              select="//myNode[@objectId='largeImage']/@label" />