XmlDocument.Load的问题
答案:4 悬赏:0 手机版
解决时间 2021-11-14 22:32
- 提问者网友:未信
- 2021-11-14 02:33
XmlDocument.Load的问题
最佳答案
- 五星知识达人网友:琴狂剑也妄
- 2021-11-14 03:23
出现了“给定编码中的字符无效”的错误。
XmlDocument doc = new XmlDocument();
MessageBox.Show(doc.InnerXml);
看来是因为 URL 的 xml 中含有中文字符,却没有定义成 UTF-8 编码的缘故。
xml 中声明的是 而不是
如果是 xml 本地文件,转换起来比较方便。而对于 URL,xmlDocument.Load 则要麻烦一些,
可以采用这种方法:
XmlDocument doc = new XmlDocument();
doc.LoadXml(new WebClient().DownloadString);
MessageBox.Show(doc.InnerXml);
这样能够解决问题了。其实只要避开直接使用 xml 相关的类带来的编码问题,那么要做的只是简单把 URL 的内容存到字符串里即可。
XmlDocument doc = new XmlDocument();
MessageBox.Show(doc.InnerXml);
看来是因为 URL 的 xml 中含有中文字符,却没有定义成 UTF-8 编码的缘故。
xml 中声明的是
如果是 xml 本地文件,转换起来比较方便。而对于 URL,xmlDocument.Load 则要麻烦一些,
可以采用这种方法:
XmlDocument doc = new XmlDocument();
doc.LoadXml(new WebClient().DownloadString);
MessageBox.Show(doc.InnerXml);
这样能够解决问题了。其实只要避开直接使用 xml 相关的类带来的编码问题,那么要做的只是简单把 URL 的内容存到字符串里即可。
全部回答
- 1楼网友:爱难随人意
- 2021-11-14 06:28
LoadXml是加载xml字符串。参数是xml的内容。
Load加载的是一个xml文件。参数是文件路径。
Load加载的是一个xml文件。参数是文件路径。
- 2楼网友:妄饮晩冬酒
- 2021-11-14 05:30
建议你不要使用拼接字符串。
1.使用XmlDocument.CreateElement和CreateTextNode来创建节点,xml会自动帮你转换编码
2.使用Linq2Xml技术,直接用new XDocument(new XElement())这种方式创建xml文档
3.使用XmlWriter来WriteElement WriteAttribute
4.使用XmlSerializer序列化对象,只需要写一句话XmlSerializer.Serialize可以自动帮你把对象转换成xml
1.使用XmlDocument.CreateElement和CreateTextNode来创建节点,xml会自动帮你转换编码
2.使用Linq2Xml技术,直接用new XDocument(new XElement())这种方式创建xml文档
3.使用XmlWriter来WriteElement WriteAttribute
4.使用XmlSerializer序列化对象,只需要写一句话XmlSerializer.Serialize可以自动帮你把对象转换成xml
- 3楼网友:鸽屿
- 2021-11-14 05:03
xml.Load(string fileName),里面参数应该是一个文件路径的,你如果要传strXML参数的话,用xml.LoadXml(strXML.ToString())试试
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯