我有一个程序可以逐行构建XML,该程序从MS Word文档中提取内容。 XML可以包含嵌套的项目符号列表,如下所示。我需要能够指定需要插入我的商品的列表级别的能力。因此,这可能是最终的嵌套项目符号列表(列表中的列表)。
<bulletlist>
<item>Level 1 item</item>
<item>Level 1 item:
<bulletlist>
<item>Level 2 item</item>
<item>Level 2 item
<bulletlist>
<item>Level 3 item</item>
<item>Level 3 item</item>
<item>Level 3 item</item>
</bulletlist>
</item>
</bulletlist>
</item>
<item>Level 1 item</item>
<item>Level 1 item</item>
</bulletlist>
现在到这里,我的程序将查看Word中的段落缩进,确定它是哪个列表级别,然后构建XML结构。 因此,如果我只想在当前的Level 1中添加另一个项目,我就可以了。
content.Descendants("item")
.LastOrDefault()
.AddAfterSelf(new XElement("item", "some new text to go here"));
但是假设我有这个XML片段项目符号列表:
<bulletlist>
<item>Level 1 item</item>
<item>Level 1 item:
<bulletlist>
<item>Level 2 item</item>
<item>Level 2 item
<bulletlist>
<item>Level 3 item</item>
<item>Level 3 item</item>
<item>Level 3 item</item>
</bulletlist>
</item>
</bulletlist>
</item>
</bulletlist>
,现在我需要向“级别1”列表中添加另一个项目。我不能使用与上面相同的代码,因为它将只会将其添加到3级列表中。
我需要指定需要添加到哪个列表级别,而无需以任何方式识别XML。使用某种索引而不是lastOrDefault()或类似的方式。有什么想法吗?