【问题标题】:transform pair of key value tags to <key>value</key> in Oracle integration Cloud在 Oracle 集成云中将键值标签对转换为 <key>value</key>
【发布时间】:2020-02-25 09:51:52
【问题描述】:

我有发送到 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】:

    你可以使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      • 1970-01-01
      • 2019-08-08
      • 2012-02-06
      • 1970-01-01
      相关资源
      最近更新 更多