我正在获取需要转换为另一种标准类型的XML文件。我的指尖上有XSLT2,我无法控制任何一个文件的格式。第一个有两个使用数字值的序列来匹配它们。第一个序列可以有0..n秒。如何通过XSLT将两个并排XML结构映射到一起?
一个例子是:
输入:
<foo>
<structure name="items">
<item>
<itemCode>1</itemCode>
<itemValue>1111</itemValue>
</item>
<item>
<itemCode>2</itemCode>
<itemValue>2222</itemValue>
</item>
</structure>
<structure name="subItems">
<subItem>
<itemCode>1</itemCode>
<subValue>12</subValue>
<subType>MISC</subType>
</subItem>
<subItem>
<itemCode>1</itemCode>
<subValue>15</subValue>
<subType>MISC2</subType>
</subItem>
<subItem>
<itemCode>2</itemCode>
<subValue>40</subValue>
<subType>MISC</subType>
</subItem>
</structure>
</foo>
而且我想输出是
<bar>
<items>
<item>
<code>1</code>
<value>1111</value>
<subItems>
<subItem>
<subValue>12</subValue>
<subType>MISC</subType>
</subItem>
<subItem>
<subValue>15</subValue>
<subType>MISC2</subType>
</subItem>
</subItems>
</item>
<item>
<code>2</code>
<value>2222</value>
<subItems>
<subItem>
<subValue>40</subValue>
<subType>MISC</subType>
</subItem>
</subItems>
</item>
</items>
</bar>
我一直不成功映射item.itemCode简单,因为subItem.itemCode看到下一个之前,XSLT处理器似乎退出第一个序列。我无法知道有多少我会在任何一个序列中获得,所以我不能做一张静态地图。
任何想法?
在此先感谢
我不清楚你的意思*第一个序列可能有0..n秒*。请解释。 – Borodin