【问题标题】:Rename tags using XSLT使用 XSLT 重命名标签
【发布时间】:2013-08-22 15:18:08
【问题描述】:

我对这个 XSLT 脚本有疑问。我想重命名我的标签,并且我有一个包含新名称的标签元素的表。我正在使用 Talend 获取每一行并将名称存储在两个变量“generic”中,其中包含新名称和另一个包含完整路径 (arbre) 的变量。

   <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="UTF-8" 
         doctype-public="-//W3C//DTD HTML 4.01//EN" 
         doctype-system="" indent="yes" />
    
    <xsl:param name = "generique" />
    <xsl:param name = "arbre" />
    
    <xsl:variable name="vXpath"  select= "$arbre" />
    
    <xsl:template match= "/">
       <xsl:value-of select="$vXpath"/>
       <xsl:element name ="{$generique}">
         <xsl:apply-templates select="child"/>
       </xsl:element>
    </xsl:template>
    
    <xsl:template match="@*|node()" priority="0">
    <xsl:copy>
    <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
    </xsl:template>
    
    </xsl:stylesheet>

脚本无法按我的意愿运行。

【问题讨论】:

    标签: xml xslt talend


    【解决方案1】:

    你说&lt;xsl:apply-templates select="child"/&gt;的地方,我怀疑你想要&lt;xsl:apply-templates/&gt;。

    您编写的方式仅适用于以&lt;child&gt;...&lt;/child&gt; 开头的文档。

    请注意,不存在的select= 意味着select="child::node()",这很可能是您认为自己在说的话。

    【讨论】:

    • 是的,如果我说不是这个“”这个: 我得到这个错误:它会选择任何东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 2011-04-09
    • 2010-11-04
    • 1970-01-01
    相关资源
    最近更新 更多