C# XDocument 加载多个根

xml

1个回答

写回答

徐明雪

2025-07-05 02:35

+ 关注

XML
XML

使用C#的XDocument加载多个根节点是一种非常方便的方式来处理XML文档。XDocument是System.XML.Linq命名空间中的一个类,它提供了一种简单而强大的方法来解析和操作XML数据。

在C#中,我们可以使用XDocument的Load方法来加载一个XML文档。通常情况下,一个XML文档只能有一个根节点,但有时候我们可能会遇到一些特殊情况,需要处理包含多个根节点的XML文档。这时,XDocument提供了一种解决方案。

让我们来看一个简单的示例,假设我们有一个包含多个根节点的XML文档,其中每个根节点都表示一个人的信息:

csharp

string XML = @"

<person>

<name>John</name>

<age>30</age>

</person>

<person>

<name>Alice</name>

<age>25</age>

</person>

";

XDocument doc = XDocument.Parse("<root>" + XML + "</root>");

foreach (XElement personElem in doc.Descendants("person"))

{

string name = personElem.Element("name").Value;

int age = int.Parse(personElem.Element("age").Value);

Console.WriteLine("Name: " + name);

Console.WriteLine("Age: " + age);

Console.WriteLine();

}

在这个例子中,我们先将XML文档的内容包裹在一个名为"root"的根节点中,然后使用XDocument的Parse方法将其解析为一个XDocument对象。接下来,我们使用Descendants方法来获取所有名为"person"的元素,并遍历每个元素来获取其子元素的值。

输出将会是:

Name: John

Age: 30

Name: Alice

Age: 25

这样,我们就成功地加载了一个包含多个根节点的XML文档,并对每个根节点进行了处理。

示例代码:

csharp

using System;

using System.XML.Linq;

namespace XDocumentMultipleRoots

{

class Program

{

static void MAIn(string[] args)

{

string XML = @"

<person>

<name>John</name>

<age>30</age>

</person>

<person>

<name>Alice</name>

<age>25</age>

</person>

";

XDocument doc = XDocument.Parse("<root>" + XML + "</root>");

foreach (XElement personElem in doc.Descendants("person"))

{

string name = personElem.Element("name").Value;

int age = int.Parse(personElem.Element("age").Value);

Console.WriteLine("Name: " + name);

Console.WriteLine("Age: " + age);

Console.WriteLine();

}

}

}

}

:

通过使用C#的XDocument加载多个根节点,我们可以轻松处理包含多个根节点的XML文档。使用XDocument的Parse方法,我们可以将包含多个根节点的XML文档解析为一个XDocument对象,然后使用Descendants方法来获取每个根节点,并对其进行处理。这种方式非常灵活,方便我们处理各种不同结构的XML文档。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号