如何替换atrribute

时间:2015-10-21 07:20:16

标签: xml xslt

我坚持这个问题:

我必须输出一个输入标签,而不是输入标签,但要修改。标签名称和第一个属性需要按原样呈现。需要更改第二个属性的值,并且要追加第三个属性(甚至不存在于输入标记中)。

以下是示例:

这是输入元素:

<criterion class="equal" to="'text '"/>

这是我想要在输出上获得的元素:

<criterion class="equal" to="text&#160;&#160;&#160;&#160;" result="{$result}"/>

所以xml文件(输入和输出)中的部分代码是相同的,因此我计划使用这种模式:

<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

但是当进程遇到to属性时,我需要明确定义另一个模式来处理不同的另一部分。像这样:

<xsl:template match="@to">
    <!--some staff here I don't know what-->
</xsl:template>

所以^^这些^^只是我头脑中的想法。请帮我解决这个转变。

1 个答案:

答案 0 :(得分:1)

一般来说,你会做这样的事情:

<xsl:template match="@to">
    <xsl:attribute name="to">
        <xsl:value-of select="concat(., '&#160;&#160;&#160;&#160;')" />
    </xsl:attribute>
</xsl:template>

我不确定是否按照字面意思采用你的例子。