我想将嵌套的xml转换为使用XSLT展平xml。
传入的xml结构类似但是传入的xmls的节点名称会发生变化,因此想要动态处理
示例输入
<?xml version="1.0" encoding="UTF-8"?>
<queryResponse>
<Account>
<Id>0010</Id>
<Name>AA</Name>
<RecordTypeId>0122/RecordTypeId>
<RecordType>
<Id>012</Id>
<DeveloperName>Legal_Associate</DeveloperName>
</RecordType>
</Account>
<Account>
<Id>0011</Id>
<Name>BB</Name>
<RecordTypeId>0123</RecordTypeId>
<RecordType>
<Id>013</Id>
<DeveloperName>Legal_Associate</DeveloperName>
</RecordType>
</Account>
</queryResponse>
&#13;
预期产出
<?xml version="1.0" encoding="UTF-8"?>
<queryResponse>
<Account>
<Id>0010</Id>
<Name>AA</Name>
<RecordTypeId>0122</RecordTypeId>
<RecordType.Id>012</RecordType.Id>
<RecordType.DeveloperName>Legal_Associate</RecordType.DeveloperName>
</Account>
<Account>
<Id>0011</Id>
<Name>BB</Name>
<RecordTypeId>0123<RecordTypeId>
<RecordType.Id>013</RecordType.Id> <RecordType.DeveloperName>Legal_Associate</RecordType.DeveloperName>
</Account>
</queryResponse>
&#13;
答案 0 :(得分:0)
在发布问题时,您应该发布尝试过的代码以及hense,我们可以告诉您更新。
以下是您可以回答的代码:
<?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="xs" version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="RecordType">
<xsl:for-each select="*">
<xsl:element name="{concat(name(..),'.',name())}">
<xsl:apply-templates select="node()"/>
</xsl:element>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>