使用XSLT拆分输入XML
我想基于元素“ConsolidatedID”拆分输入XML,并使用XSL转换创建新的输出XML,这可能吗 如何在SOA12c中使用XSLT实现这一点 输入XML:使用XSLT拆分输入XML,xml,xslt-2.0,soa,Xml,Xslt 2.0,Soa,我想基于元素“ConsolidatedID”拆分输入XML,并使用XSL转换创建新的输出XML,这可能吗 如何在SOA12c中使用XSLT实现这一点 输入XML: <Root> <Data> <ConsolidatedID>ONE</ConsolidatedID> <NewID>First</NewID> <Amount>100</Amount> </Data> <Data>
<Root>
<Data>
<ConsolidatedID>ONE</ConsolidatedID>
<NewID>First</NewID>
<Amount>100</Amount>
</Data>
<Data>
<ConsolidatedID>ONE</ConsolidatedID>
<NewID>First</NewID>
<Amount>100</Amount>
</Data>
<Data>
<ConsolidatedID>ONE</ConsolidatedID>
<NewID>Second</NewID>
<Amount>200</Amount>
</Data>
<Data>
<ConsolidatedID>TWO</ConsolidatedID>
<NewID>First</NewID>
<Amount>100</Amount>
</Data>
<Data>
<ConsolidatedID>TWO</ConsolidatedID>
<NewID>First</NewID>
<Amount>100</Amount>
</Data>
<ConsolidatedID>TWO</ConsolidatedID>
<NewID>Four</NewID>
<Amount>400</Amount>
</Data>
</Root>
一个
弗斯特
100
一个
弗斯特
100
一个
第二
200
两个
弗斯特
100
两个
弗斯特
100
两个
四
400
预期O/p:
<Root>
<Data>
<ConsolidatedID>ONE</ID>
<NewID>First</NewID>
<Amount>100</Amount>
</Data>
<Data>
<ConsolidatedID>ONE</ConsolidatedID>
<NewID>First</NewID>
<Amount>100</Amount>
</Data>
<Data>
<ConsolidatedID>ONE</ConsolidatedID>
<NewID>Second</NewID>
<Amount>200</Amount>
</Data>
</Root>
<Root>
<Data>
<ConsolidatedID>TWO</ConsolidatedID>
<NewID>First</NewID>
<Amount>100</Amount>
</Data>
<Data>
<ConsolidatedID>TWO</ConsolidatedID>
<NewID>First</NewID>
<Amount>100</Amount>
</Data>
<ConsolidatedID>TWO</ConsolidatedID>
<NewID>Four</NewID>
<Amount>400</Amount>
</Data>
</Root>
一个
弗斯特
100
一个
弗斯特
100
一个
第二
200
两个
弗斯特
100
两个
弗斯特
100
两个
四
400
有人能帮我解决这个问题吗
问候,,
毗湿奴。在标准XSLT2.0中(不知道SOA到底支持什么),您可以使用
<xsl:template match="Root">
<xsl:for-each-group select="Data" group-by="ConsolidatedID">
<xsl:result-document href="{current-grouping-key()}.xml">
<Root>
<xsl:copy-of select="current-group()"/>
</Root>
</xsl:result-document>
</xsl:for-each-group>
</xsl:template>