将键值标签对在Oracle集成云中转换为 值

问题描述 投票:0回答:1

我具有以以下格式发送到Oracle集成云的xml有效负载

<keyName>key1</keyName>
<keyValue>value1</keyValue>
<keyName>key2</keyName>
<keyValue>value2</keyValue>
.
.

我想用xsl表达式将其转换为这种格式

至以下内容:

<key1>value1</key1>
<key2>value2</key2>
<key3>value3</key3>

如何实现?

xml oracle integration xslt-2.0 soa
1个回答
0
投票

您可以使用following-sibling处理此问题:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="#all" version="2.0">

    <xsl:strip-space elements="*"/>

    <xsl:output method="xml" indent="yes"/>

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

    <xsl:template match="keyName">
        <xsl:element name="{.}">
            <xsl:value-of select="following-sibling::node()[self::keyValue][1]"/>
        </xsl:element>
    </xsl:template>

    <xsl:template match="keyValue"/>

</xsl:stylesheet>

链接:https://xsltfiddle.liberty-development.net/6rexjik

© www.soinside.com 2019 - 2024. All rights reserved.