通用XSLT转换

时间:2010-01-31 10:47:56

标签: xml xslt

我是XSLT中的新鲜蜜蜂。我有时间限制,我必须非常紧急地提供一些东西。

我正在粘贴下面的xml示例。这里有一个小解释我有input.xml和output.xml。这两个文件需要合并,因为它们具有不同的格式。两个文件都需要根据元素“ID”进行合并。 output.xml需要在input.xml内合并。如果input.xml中元素的ID与output.xml的元素ID匹配,那么output.xml的子元素需要在input.xml中匹配元素的结束标记之前合并。

如果您有任何疑问,请将其解雇。

input.xml中

<Result ID="A">
  <Comment>Blah blah blah.</Comment>
  <aaa>111</aaa>
  <a1>000</a1>
  <a2 ID="B">
  <a2a>9iu</a2a>
  <a23>kjf</a23>
  <b ID="C">
    <b1>k</b1>
  </b>
  <c>jjj</c>
  <d ID="E">
    <d12>ppp</d12>
    <d23 ID="W" />
  </d>
  <e ID="AA">
    <d ID="G">
      <d12>ppp</d12>
      <d23 ID="O" />
    </d>
  </e>
</Result>

的Output.xml

<Insert>
  <mn ID="A">
    <mn1>345</mn1>
    <mn2>123</mn2>
  </mn>
  <no ID="C">
    <op>09</op>
    <io>89</io>
  </no>
  <ab ID="B">
    <ab>jik</ab>
    <dc>hdg</dc>
  </ab>
</Insert>

merged.xml(必需的输出):

<Result ID="A">
  <Comment>Blah blah blah.</Comment>
  <aaa>111</aaa>
  <a1>000</a1>
  <a2 ID="B">
    <a2a>9iu</a2a>
    <a23>kjf</a23>
    <b ID="C">
      <b1>k</b1>
      <op>09</op>
      <io>89</io>
    </b>
    <c>jjj</c>
    <d ID="E">
      <d12>ppp</d12>
      <d23 ID="W" />
    </d>
    <ab>jik</ab>
    <dc>hdg</dc>
  </a2>
  <e ID="AA">
    <d ID="G">
      <d12>ppp</d12>
      <d23 ID="O" />
    </d>
  </e>
  <mn1>345</mn1>
  <mn2>123</mn2>
</Result>

我需要一个通用的XSLT解决方案,它可以在没有硬编码标签名称的情况下工作。