使用XDocument获取多个Root元素

时间:2013-12-09 15:20:25

标签: c# xml linq-to-xml

我有一个如下所示的XML文件:

<?xml version="1.0" encoding="utf-8" ?>
<Page1>
  <item name="somefield1">111</item>
  <item name="somefield1">111</item>
</Page1>
<Page2>
  <item name="somefield1">111</item>
  <item name="somefield1">111</item>
</Page2>
<Page3>
  <item name="somefield1">111</item>
  <item name="somefield1">111</item>
</Page3>

我想获取所有Root元素名称。因此,在这种情况下:Page1Page2Page3。但元素的数量和名称可以是任何东西。

但我无法弄清楚如何获取根元素的所有名称。如何使用Xdocument

执行此操作

1 个答案:

答案 0 :(得分:2)

你所要求的是不可能的。具有多个根元素的XML不正确,因此System.Xml.*类不支持该元素。

您可以做的是在Page元素周围放置一个根元素:

<?xml version="1.0" encoding="utf-8" ?>
<Pages>
    <Page1>
      <item name="somefield1">111</item>
      <item name="somefield1">111</item>
    </Page1>
    <Page2>
      <item name="somefield1">111</item>
      <item name="somefield1">111</item>
...
</Pages>

然后很容易在该元素下找到您的Pages集合。