通过XSLT替换XML本地名称



我想转换以下代码

================

<spirit:parameter>
    <spirit:name>P3</spirit:name>
          <spirit:test_value>8</spirit:test_value>
        </spirit:parameter>
</spirit:parameters>

================

================

<spirit:parameter>
    <spirit:name>P3</spirit:name>
          <spirit:glue_value>8</spirit:glue_value>
        </spirit:parameter>
</spirit:parameters>

================

我想通过XSLT来做。请帮忙

您的示例输入不太有效,因此稍作更改并添加了一个名称空间:

<?xml version="1.0" encoding="UTF-8"?>
<spirit:parameters xmlns:spirit="http://example.com/namespace/spirit">
    <spirit:parameter>
        <spirit:name>P3</spirit:name>
        <spirit:test_value>8</spirit:test_value>
    </spirit:parameter>
</spirit:parameters>

你需要复制所有的节点,除了需要重命名的'spirit:test_value':

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:spirit="http://example.com/namespace/spirit">
    <xsl:output omit-xml-declaration='yes'/>
    <xsl:template match="spirit:parameters|spirit:parameter|spirit:name">
        <xsl:copy>
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="spirit:test_value">
        <spirit:glue_value>
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </spirit:glue_value>
    </xsl:template>
</xsl:stylesheet>

这里的' <xsl:copy-of select="@*"/> '部分是可选的,如果您想从源XML中复制任何属性,您将需要这些。

相关内容

  • 没有找到相关文章

最新更新