处理XML时说遇到无效的字符,啥意思?和这个类似,
http://topic.csdn.net/u/20091107/16/4168e72f-9d0f-43ef-a18e-536d084fc9ca.html但是不一样, 我这个是用 XmlDocument . load () 方法不会出错的,
但只是用 XElement.Load() 才会出错.为啥? 是不是 XmlDocument 比 XElement 容错性好?
能用XmlDocument处理的文件 , 偏就不能用 XElement 处理?其实我也不知道这两个东西有啥区别,但是为什么为这种情况呢?
(就是姓名中常见的一些左右箭头之类的符号,文件是UTF-8格式的)
看代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml;
using System.Text;
using System.Xml.Linq;namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string file = @"D:\test.xml";//<?xml version="1.0"?>
//<root>
// <post>
// <nick>丨杀无赦丨﹎</nick>
// <reply>yes</reply>
// </post>
//</root> xmlTest1(file);
xmlTest2(file); Console.ReadKey();
} //正常
private static void xmlTest1(string file)
{
var xml = new XmlDocument();
xml.Load(file);
foreach (XmlNode item in xml.ChildNodes[1])
foreach (XmlNode d in item.ChildNodes )
Console.WriteLine("{0} : {1}",d.Name ,d.InnerText );
} //出错
private static void xmlTest2(string file)
{
try { XElement root = XElement.Load(file); }
catch (Exception e) { Console.WriteLine(e.Message); }
}
}
}//执行结果://nick : 丨杀无赦丨﹎
//reply : yes
//“”(十六进制值 0x1A)是无效的字符。 行 4,位置 14。
http://topic.csdn.net/u/20091107/16/4168e72f-9d0f-43ef-a18e-536d084fc9ca.html但是不一样, 我这个是用 XmlDocument . load () 方法不会出错的,
但只是用 XElement.Load() 才会出错.为啥? 是不是 XmlDocument 比 XElement 容错性好?
能用XmlDocument处理的文件 , 偏就不能用 XElement 处理?其实我也不知道这两个东西有啥区别,但是为什么为这种情况呢?
(就是姓名中常见的一些左右箭头之类的符号,文件是UTF-8格式的)
看代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml;
using System.Text;
using System.Xml.Linq;namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string file = @"D:\test.xml";//<?xml version="1.0"?>
//<root>
// <post>
// <nick>丨杀无赦丨﹎</nick>
// <reply>yes</reply>
// </post>
//</root> xmlTest1(file);
xmlTest2(file); Console.ReadKey();
} //正常
private static void xmlTest1(string file)
{
var xml = new XmlDocument();
xml.Load(file);
foreach (XmlNode item in xml.ChildNodes[1])
foreach (XmlNode d in item.ChildNodes )
Console.WriteLine("{0} : {1}",d.Name ,d.InnerText );
} //出错
private static void xmlTest2(string file)
{
try { XElement root = XElement.Load(file); }
catch (Exception e) { Console.WriteLine(e.Message); }
}
}
}//执行结果://nick : 丨杀无赦丨﹎
//reply : yes
//“”(十六进制值 0x1A)是无效的字符。 行 4,位置 14。
解决方案 »
- 如何监听Socket.Receive是否收到了值?
- 为什吗 页面不显示了。。。。
- “&&”无法应用于“string”和“bool”类型的操作数
- 请教一个关于C#中的读文件问题
- 100分求sip协议开发资料,哪未仁兄帮帮忙
- 请教API函数中的参数的设置
- 在我的机器上有一个FTP,支持断点续传,我怎么才能知道什么时间有人正在上传文件,以及什么什么时间一个完整的文件被上传完毕?
- 菜鸟的问题,很菜,很菜,真的很菜,不信,进来看看
- System.IO.StreamWriter将数据导出Excel时 很多数据不见了
- C#的AES怎么这么变态
- C#这个问题,也只能在这里解决了,路过就进来看看吧^^
- 如何将div或者table种的数据用图片保存出
f.WriteLine("{0} : {1}", d.Name, d.InnerText);