San*_*ile 40 c# xml unicode visual-studio-2008 winforms
我试图使用XDocument方法读取xml文档.但我在xml有错误时收到错误
<?xml version="1.0" encoding="utf-16"?>
Run Code Online (Sandbox Code Playgroud)
当我手动删除编码.它完美的工作.
我收到错误" 没有Unicode字节顺序标记.无法切换到Unicode. "
我试着搜索,然后我降落在这里 - >
为什么包含XML头时C#XmlDocument.LoadXml(字符串)会失败?
但无法解决我的问题.
我的代码:
XDocument xdoc = XDocument.Load(path);
Run Code Online (Sandbox Code Playgroud)
有什么建议 ??
谢谢.
Ran*_*ica 62
看起来您尝试读取的文件未编码为Unicode.您可以通过尝试使用指定为的XML文件中的编码打开编码为ANSI的文件来复制行为utf-16.
如果您无法确保文件编码正确,那么您可以将文件读入流(让StreamReader检测编码),然后创建XDocument:
using (StreamReader sr = new StreamReader(path, true))
{
XDocument xdoc = XDocument.Load(sr);
}
Run Code Online (Sandbox Code Playgroud)
我试过了,发现了另一种方法!
XDocument xdoc = XDocument.Parse(System.IO.File.ReadAllLines(path));
Run Code Online (Sandbox Code Playgroud)
小智 6
这段代码:
System.IO.File.ReadAllLines(path)
Run Code Online (Sandbox Code Playgroud)
返回一个字符串数组.正确的代码是:
System.IO.File.ReadAllText(path)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40193 次 |
| 最近记录: |