首页 > 解决方案 > 无法将 XElement 转换为 XObject

问题描述

我正在尝试使用以下代码序列化 XML 文件:

XmlDocument xDoc = new XmlDocument();
xDoc.Load(@"D:\myfile.xml");
string jsonStr = JsonConvert.SerializeXNode(xDoc);

但它不起作用,我在第 3 行收到以下错误

无法将 XmlDocument 转换为 XObject

我也尝试找到第一个节点,然后尝试传递它,但它也不起作用。

标签: c#serializationxml-serialization

解决方案


您正在使用XmlDocument,它来自“旧”XML API。Json.NET 使用 LINQ to XML 的“新”XML API。您只需要更改加载 XML 的方式:

XDocument xml = XDocument.Load(@"D:\myfile.xml");
string json = JsonConvert.SerializeXNode(xml);

推荐阅读