我要编写一个 XML 到 XML 的转换。我的输入 XML 文档包含许多同级列表(带有子列表),我想将它们转换为 1 个主列表(不删除子列表)。换句话说,我想在第一个兄弟列表之后抑制每个兄弟列表,但保留所有子列表。
这是一个示例输入 XML 文档:
<back>
<index id="subject">
<title>Subject Index</title>
<index id="section">
<list id="index">
<item>apple</item>
<item>almond</item>
<item>american cheese</item>
<item>Avocado
<list id="index">
<item>Mexican</item>
<item>Chilian</item>
</list>
</item>
<item>asparagus</item>
<item>anchovie</item>
</list>
</index>
<index id="section">
<list id="index">
<item>banana</item>
<item>barley</item>
<item>bagel
<list id="index">
<item>sesame</item>
<item>plain</item>
<item>everything</item>
</list>
</item>
<list id="index">
<item>bean
<list id="index">
<item>green bean</item>
<item>navy bean</item>
</list>
</item>
</list>
</list>
</index>
</index>
我想将上面的内容转换为下面的结构,其中一个主列表 id="index"。子列表应该保留,但兄弟列表应该被禁止。
<back>
<index id="subject">
<title>Subject Index</title>
<list id="index">
<item>apple</item>
<item>almond</item>
<item>american cheese</item>
<item>Avocado
<list id="index">
<item>Mexican</item>
<item>Chilian</item>
</list>
</item>
<item>asparagus</item>
<item>anchovie</item>
<item>banana</item>
<item>barley</item>
<item>bagel
<list id="index">
<item>sesame</item>
<item>plain</item>
<item>everything</item>
</list>
</item>
<list id="index">
<item>bean
<list id="index">
<item>green bean</item>
<item>navy bean</item>
</list>
</item>
</list>
</list>
</index>