如何在bpel中的xslt1.0中将1个源数据映射到3个目标数据



我有一个像这样的源xml。。

   <root>
    <rootElement>
  <Name>Name1</Name>
  <ID>001</ID>
  <element1>A</element1>
  <element2>B</element2>
  <element3>C</element3>
  <elementName>First</elementName>
</rootElement>
<rootElement>........</rootElement>
  </root>

我想要一个类似的目标xml

 <root>
 <rootElement>
 <name>Name1</name>
    <id>001</id>
  <element1>A</element1>
  <element2></element2>
  <element3></element3>
  <processedFlag>N</processedFlag>
  <elementName>First</elementName>
    </rootElement>
     <rootElement>
 <name>Name1</name>
  <id>001</id>
  <element1></element1>
  <element2>B</element2>
  <element3></element3>
  <processedFlag>N</processedFlag>
  <elementName>First</elementName>
    </rootElement>
        <rootElement>
    <name>Name1</name>
  <id>001</id>
  <element1></element1>
  <element2></element2>
  <element3>C</element3>
  <processedFlag>N</processedFlag>
  <elementName>First</elementName>
    </rootElement>
  </root>

意味着对于每条记录,我需要3个<rootElement>标签。

我尝试过使用oraext:create-nodeset-from-delimited-string,但它不适用于多个元素。请帮忙。

这样试试:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="root">
    <xsl:copy>
        <xsl:apply-templates select="rootElement/element1 | rootElement/element2 | rootElement/element3"/>
    </xsl:copy>
</xsl:template>
<xsl:template match="element1 | element2 | element3">
    <rootElement>
        <xsl:copy-of select="../Name | ../ID "/>
        <element1>
            <xsl:value-of select="current()[self::element1]" />
        </element1>
        <element2>
            <xsl:value-of select="current()[self::element2]" />
        </element2>
        <element3>
            <xsl:value-of select="current()[self::element3]" />
        </element3>
        <processedFlag>N</processedFlag>
        <xsl:copy-of select="../elementName"/>
    </rootElement>
</xsl:template>
</xsl:stylesheet>

演示:http://xsltransform.net/bFN1y99

相关内容

  • 没有找到相关文章

最新更新