xml xslt:如何使用xslt连接xml中的两个字段

时间:2018-10-10 08:18:31

标签: xml xslt

我将xml输入为

<FileDetailRecord>
<Detail number="1">
<API>Test_API</API>
<RESOURCEPATH>/abc/{gamezone}</RESOURCEPATH>
</Detail>
<Detail number="2">
<API>Test_API</API>
<RESOURCEPATH>/gamehub</RESOURCEPATH>
</Detail>
</FileDetailRecord>

我需要将其转换为

<FileDetailRecord>
<Detail number="1">
<API>TestAPI_/abc/{gamezone}</API>
</Detail>
<Detail number="2">
<API>TestAPI_/gamehub</API>
</Detail>
</FileDetailRecord>

我尝试了多种使用以下方式进行连接的方法:

<xsl:template match="API">
<xsl:value-of select="concat(API,'-',RESOURCEPATH)" />
</xsl:template>

但这似乎不起作用。可以请一个人指导。

谢谢。

1 个答案:

答案 0 :(得分:0)

尝试一下

首次使用身份转换

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

使用

删除RESOURCEPATH
<xsl:template match="RESOURCEPATH"/>

然后通过{p>将RESOURCEPATH移到API

<xsl:template match="API">
        <xsl:copy>
            <xsl:value-of select="concat('Telenor_API_' , following-sibling::RESOURCEPATH)"/>
        </xsl:copy>
    </xsl:template>

请参见https://xsltfiddle.liberty-development.net/94hvTzV/1上的变换

如果要保留<API>的值,而不要查看对https://xsltfiddle.liberty-development.net/94hvTzV的转换