用其XSLT属性名称命名元素

时间:2019-06-28 08:43:20

标签: xml xslt

我正在寻找XLST以编辑xml文件。如标题中所述,我想使用“名称”属性的名称重命名我的商品。

我的xml文件:

jq -s '
  .[0].fields as $f | add | .fields += $f
' base.avsc schema1.avsc

我想要的输出xml文件:

<doe name="titi">
    <bob name="toto">blabla</bob>
    <bob name="tutu">blabla </bob>
</doe>

我尝试了几件事,但被发回了“属性”名称“值不正确”

<titi>
    <toto>blabla</toto>
    <tutu>blabla </tutu>
</titi>

<xsl:element name="@bob">
    <xsl:value-of select="$bob" />  
</xsl:element>

2 个答案:

答案 0 :(得分:1)

按照您的要求输入代码

    

<xsl:template match="doe">
<xsl:element name="{@name}">
<xsl:for-each select="bob">
    <xsl:element name="{@name}"><xsl:value-of select="."/></xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>

答案 1 :(得分:1)

尝试一下:

<xsl:template match="*[@name]">
        <xsl:element name="{@name}">
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>

检查https://xsltfiddle.liberty-development.net/jyRYYj7上的转换