Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在xslt中动态设置节点名_Xslt - Fatal编程技术网

如何在xslt中动态设置节点名

如何在xslt中动态设置节点名,xslt,Xslt,我想在XSLT中动态设置节点名 我的XSLT如下所示: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:output method="xml" in

我想在XSLT中动态设置节点名

我的XSLT如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
        <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
        <xsl:template match="/">
        <xsl:variable name="sam" select="elementName"/>
       <Body>
      <xsl:element name="{$sam}">
             <PacketControlInfo>
                  <abc>123</abc>
             </PacketControlInfo>
         </xsl:element>
       </Body>
        </xsl:template>
    </xsl:stylesheet>

在上面的XML中可以看到,
Body
下面的节点名已更改为
“elementName”
,变量
“sam”

的值
select
属性是一个XPath表达式。当您将变量声明为

<xsl:variable name="sam" select="elementName"/>

当然,如果您想要一个名称为已知字符串的元素,只需将其作为
写入输出,并避免所有这些歌舞……@HarikrishnaKalarickel,这将与
elementName
相同。“动态”部分在哪里?你希望你的变量是一个常数;你为什么需要它?
<xsl:variable name="sam" select="elementName"/>
<xsl:variable name="sam" select="'elementName'"/>