XDocument.Parse() 是最常用且简单可靠的 XML 字符串加载方式,适用于格式正确、内容已知的字符串;若字符串为空、null 或非法则抛 XmlException,需 try-catch;不自动处理 BOM 或编码声明,仅要求字符串本身为合法 UTF-16/UTF-8 文本。

直接用 XDocument.Parse() 方法就能把 XML 字符串加载成 XDocument 对象,简单可靠。
用 Parse() 加载字符串
这是最常用的方式,适用于格式正确、内容已知的 XML 字符串:
XDocument doc = XDocument.Parse(xmlString);- 如果
xmlString为空、null 或格式非法,会抛出XmlException,建议加 try-catch - 注意:不会自动处理 BOM 或 编码 声明,只要字符串本身是合法的 UTF-16/UTF-8 编码文本即可
从字符串流加载(更灵活)
当需要控制编码或处理带 BOM 的文本时,可用 StringReader 配合 XmlReader:
using var reader = XmlReader.Create(new StringReader(xmlString));var doc = XDocument.Load(reader);- 适合需要自定义读取行为(如忽略注释、设置 DTD 处理等)的场景
加载时验证结构(可选)
若需校验 XML 是否符合某 XSD,得先用 XmlSchemaSet 配合 XmlReaderSettings,再传给 XDocument.Load():
- 纯
Parse()不做任何验证,只确保语法合法 - 验证逻辑需额外编写,不属于加载本身,一般用于数据导入等强校验场景
基本上就这些。日常使用 XDocument.Parse() 足够,出错时捕获 XmlException 就行。