【发布时间】:2014-12-23 11:07:17
【问题描述】:
我有一个具有平面层次结构的 XML 文档,必须将其转换为层次结构的 XML 文档:
首先是一个XML源文档的例子:
<group id="xyz">
<name>bla</name>
<part id="abc1"><name>blabla-1</name></part>
<part id="abc2"><name>blabla-2</name></part>
<part id="abc3"><name>blabla-3</name></part>
<part id="abc4"><name>blabla-4</name></part>
<part id="abc5"><name>blabla-5</name></part>
<part id="abc6"><name>blabla-6</name></part>
<part id="abc7"><name>blabla-7</name></part>
<part id="abc8"><name>blabla-8</name></part>
</group>
<group id="abc4">
<name>blabla-4</name>
<part id="abc9"><name>blabla-9</name></part>
<part id="abc10"><name>blabla-10</name></part>
<part id="abc11"><name>blabla-11</name></part>
<part id="abc12"><name>blabla-12</name></part>
<part id="abc13"><name>blabla-13</name></part>
<part id="abc14"><name>blabla-14</name></part>
<part id="abc15"><name>blabla-15</name></part>
<part id="abc16"><name>blabla-16</name></part>
</group>
<group id="abc10">
<name>blabla-10</name>
<part id="abc17"><name>blabla-17</name></part>
<part id="abc18"><name>blabla-18</name></part>
<part id="abc19"><name>blabla-19</name></part>
<part id="abc20"><name>blabla-20</name></part>
<part id="abc21"><name>blabla-21</name></part>
<part id="abc22"><name>blabla-22</name></part>
<part id="abc23"><name>blabla-23</name></part>
<part id="abc24"><name>blabla-24</name></part>
</group>
以下是目标 XML 文档的示例:
<group id="xyz">
<name>bla</name>
<part id="abc1"><name>blabla-1</name></part>
<part id="abc2"><name>blabla-2</name></part>
<part id="abc3"><name>blabla-3</name></part>
<group id=abc4">
<name>blabla-4</name>
<part id="abc9"><name>blabla-9</name></part>
<group id="abc10">
<name>blabla-10</name>
<part id="abc17"><name>blabla-17</name></part>
<part id="abc18"><name>blabla-18</name></part>
<part id="abc19"><name>blabla-19</name></part>
<part id="abc20"><name>blabla-20</name></part>
<part id="abc21"><name>blabla-21</name></part>
<part id="abc22"><name>blabla-22</name></part>
<part id="abc23"><name>blabla-23</name></part>
<part id="abc24"><name>blabla-24</name></part>
</group>
<part id="abc11"><name>blabla-11</name></part>
<part id="abc12"><name>blabla-12</name></part>
<part id="abc13"><name>blabla-13</name></part>
<part id="abc14"><name>blabla-14</name></part>
<part id="abc15"><name>blabla-15</name></part>
<part id="abc16"><name>blabla-16</name></part>
</group>
</group>
【问题讨论】:
-
为什么
part的id为abc5、abc6等的元素不在group id="xyz"的结果输出中?一旦找到引用group(如abc4)的part,是否要停止处理part元素? -
您的第一个问题是您的“XML 源文档”不是 XML 文档,因为它缺少根级元素。
-
致 Martin Honnen:不,我忘了在示例中添加 abc5-abc8(真丢脸!)它不应该在那里停止进程……对于 Ian Roberts:对于我离开的示例出根文档,真正的文档有一个根元素,所以再次,我的错误-_-感谢到目前为止的答案!
标签: xml xslt recursion hierarchy