




XDocument.Parse 是 C# 中将合法 XML 字符串解析为 XDocument 对象的方法,要求格式正确、编码匹配,不支持不可信输入或异步操作,异常时抛 XmlException。
XDocument.Parse 是 C# 中用于将 XML 字符串解析为内存中可操作的 XDocument 对象的核心方法。它适用于已知格式合法、内容可信的 XML 文本,不进行文件读取,只做字符串解析。
只要 XML 字符串语法正确(有且仅有一个根元素、标签闭合、编码一致等),调用 Parse 即可:
可选)XDocument 实例,支持 LINQ to XML 查询(Descendants、Elements、Attribute 等)XmlException
实际使用中需注意以下几点:
encoding="utf-8"
XDocument.Load(TextReader) 配合自定义 X
mlReaderSettings 控制 DTD/实体解析if (!string.IsNullOrWhiteSpace(xmlStr)) { ... }
例如解析如下字符串:
代码可写为:
var doc = XDocument.Parse(xmlString);var items = doc.Root.Elements("item").Select(x => new { Id = (int)x.Attribute("id"), Name = x.Value });{ Id=1, Name="Apple" } 和 { Id=2, Name="Banana" }
根据场景不同,也可考虑:
XDocument.Load(string fileName):从文件路径加载XDocument.Load(Stream) 或 XDocument.Load(XmlReader):更适合控制解析行为(如禁用 DTD、设置命名空间)XDocument.Parse 不支持异步,如需处理大 XML 或网络响应流,应转用 XDocument.LoadAsync(需 .NET Core 3.0+ 或 .NET 5+)