Xml XSLT-Add'<'&'&燃气轮机';变

Xml XSLT-Add'<'&'&燃气轮机';变,xml,variables,xslt,mule,Xml,Variables,Xslt,Mule,我在XSLT样式中使用了一个变量: <xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pref="URI_SOAP_WS"> <xsl:param name="request" /> <xsl:template match="/"> <soap:Envelope xmlns:soap="http://

我在
XSLT
样式中使用了一个变量:

<xsl:stylesheet version="3.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pref="URI_SOAP_WS">

<xsl:param name="request" />

    <xsl:template match="/">
        <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
            xmlns:pref="URI_SOAP_WS">
            <soap:Body>
            <xsl:value-of select="$request" />
                    <xsl:apply-templates />
            <xsl:value-of select="$request" />
            </soap:Body>
        </soap:Envelope>
    </xsl:template>

我称之为:

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

但它只返回名称,不返回


如何将其添加到该值中?

使用
xsl:element
包装数据

<xsl:element name="{$request}">
    <xsl:apply-templates />
</xsl:element>

使用
xsl:element
包装数据

<xsl:element name="{$request}">
    <xsl:apply-templates />
</xsl:element>


如果要创建一个元素,您不需要连接,而是使用
xsl:element
指令。@Pawel而不是
xsl:value of
?xsl:value of获取引用的任何元素的值。本质上,它返回纯文本。在您的例子中,它返回$request变量中包含的内容。它只返回文本,不返回元素。正如@Pawel所提到的,如果要创建动态元素,可以使用xsl:element。有关如何使用它以及有关xsl:value-of的更多信息,请参阅。如果要创建元素,请不要串联,而是使用
xsl:element
指令。@Pawel而不是
xsl:value-of
?xsl:value-of获取引用的任何元素的值。本质上,它返回纯文本。在您的例子中,它返回$request变量中包含的内容。它只返回文本,不返回元素。正如@Pawel所提到的,如果要创建动态元素,可以使用xsl:element。有关如何使用它以及xsl:value of的更多信息,请参阅。