我具有以以下格式发送到Oracle集成云的xml有效负载
<keyName>key1</keyName>
<keyValue>value1</keyValue>
<keyName>key2</keyName>
<keyValue>value2</keyValue>
.
.
我想用xsl表达式将其转换为这种格式
至以下内容:
<key1>value1</key1>
<key2>value2</key2>
<key3>value3</key3>
如何实现?
您可以使用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>