XmlReader使用未转义的& s读取文档

时间:2010-08-04 19:59:10

标签: c# xml xml-entities

我正在尝试将我收到的XMl文档解析为来自Web服务调用的字符串。

String content = ...;//long xml document
using(TextReader reader = new StringReader(content))
using(XmlReader xml_reader = XmlReader.Create(reader, settings))
{
    XML = new XPathDocument(xml_reader);
}

然而我得到一个例外:

An error occurred while parsing EntityName. Line 1, position 1721.

我浏览了那个角色周围的文件,它是在一个随机标签的中间,但是早先大约20-30个字符我注意到有未转换的&符号(和字符),所以我认为这就是问题

运行:

content.Substring(1700, 100);//results in the following text
"alue>1 time per day& with^honey~&water\\\\</Value></Frequency></Direction>          </Directions>     "
                    ^unescaped & char 1721 is the 'w'

如何成功将此文档读取为xml?

1 个答案:

答案 0 :(得分:1)

验证您的xml编码是否与他们匹配(文档的顶部,如<?xml version="1.0" encoding="ISO-8859-9"?>)。将webservice xml文档中的值替换为<{1}}下面的

webserviceEncoding

如果不起作用

  1. 在将其加载到xml解析器之前将其替换为字符串
  2. 通知网络服务供应商