使用 XDocument.Parse() 可将内存中的 xml 字符串解析为 XDocument 对象,需确保字符串格式良好且非 NULL,该方法会保留注释和声明,适用于小规模 XML 处理。

在 C# 中,你可以使用 XDocument.Parse() 方法从内存中的 XML 字符串创建一个 XDocument 对象。这个方法是 System.Xml.linq 命名空间中的一部分,使用起来非常简单直接。
使用 XDocument.Parse() 解析 XML 字符串
只要你的 XML 内容是一个有效的字符串,就可以通过 XDocument.Parse() 将其加载为 XDocument 实例。
示例代码:
using System; using System.Xml.Linq; <p>string xmlString = @"<root> <person id="1"> <name>张三</name> <age>30</age> </person> <person id="2"> <name>李四</name> <age>25</age> </person> </root>";</p><p>try { XDocument doc = XDocument.Parse(xmlString); Console.WriteLine(doc.ToString()); } catch (Exception ex) { Console.WriteLine("解析 XML 失败: " + ex.Message); }</p>
注意事项和建议
- 确保传入的字符串是格式良好的 XML,否则会抛出 XmlException。
- 如果 XML 字符串可能为空或 null,应提前判断,避免运行时异常。
- 若需保留注释或处理声明(如 XML 声明),XDocument.Parse() 默认都会保留。
- 对于大文件或流式处理场景,考虑使用 XElement 或 XmlReader 提升性能。
与 XDocument.Load() 的区别
XDocument.Parse() 用于已加载到内存中的字符串;而 XDocument.Load() 通常用于从文件路径、stream 或 XmlReader 加载 XML。
例如从字符串 Stream 加载:
using (var stream = new StringReader(xmlString)) { XDocument doc = XDocument.Load(stream); }
基本上就这些。如果你只是处理一个字符串形式的 XML,XDocument.Parse(xmlString) 是最直接的方式。


