使用XDocument加载编码为UTF 16的xml
我正在尝试使用XDocument方法读取xml文档。 但是我得到一个错误,当XML有
<?xml version="1.0" encoding="utf-16"?>
当我手动删除编码。它完美的作品。
我收到错误“ 没有Unicode字节顺序标记,不能切换到Unicode”。
我试图寻找,我在这里登陆 – >
为什么包含XML头时C#XmlDocument.LoadXml(string)失败?
但解决不了我的问题。
我的代码:
XDocument xdoc = XDocument.Load(path);
有什么build议么 ??
谢谢。
它看起来像你试图读取的文件不是编码为Unicode。 您可以通过尝试打开一个编码为ANSI的文件来复制该行为,并将该文件指定为utf-16
的XML文件中的编码。
如果您不能确保文件编码正确,那么您可以将文件读StreamReader
(让StreamReader
检测编码),然后创buildXDocument
:
using (StreamReader sr = new StreamReader(path, true)) { XDocument xdoc = XDocument.Load(sr); }
我试过了,find了另一种方法!
XDocument xdoc = XDocument.Parse(System.IO.File.ReadAllLines(path));
此代码:
System.IO.File.ReadAllLines(path)
返回一个string数组。 正确的代码是:
System.IO.File.ReadAllText(path)