XSLT将单个属性转换为元素

时间:2013-06-21 09:47:04

标签: xml xslt

我正在尝试将单个属性转换为元素。 我使用的XSL是:

   <xsl:template match="TextView/@*">
   <xsl:element name="{name()}">
   <xsl:value-of select="."/>
   </xsl:element>
   </xsl:template>

我的xml:

    <TextView
     android:id="@+id/ti"
     style="@style/HTxt"
     android:text="@string/ti"
     custom:attribute="name" />

上述XSL将所有属性转换为元素。但我想只改变'custom:attribute'而忽略其他的。我怎样才能做到这一点?提前谢谢。

1 个答案:

答案 0 :(得分:3)

@*替换为@custom:attribute
因此,试试:

<xsl:template match="TextView/@custom:attribute">
        <xsl:element name="{name()}">
            <xsl:value-of select="."/>
        </xsl:element>
</xsl:template>

但注意customnamespace prefix。您必须使用与XML相同的命名空间URL将其添加到xsl:stylesheet中。 类似的东西:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
       xmlns:custom="CUSTOM_URL"
    version="1.0">