0

我正在尝试将我收到的 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 读取?

4

1 回答 1

1

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

using(XmlReader r = XmlReader.Create(new StreamReader(fileName, Encoding.GetEncoding(webserviceEncoding)))) {
    XML = new XPathDocument( r );
    // ... 
}

如果这不起作用

  1. 在将其加载到 xml 解析器之前将其替换为字符串
  2. 通知网络服务供应商
于 2010-08-04T20:04:02.947 回答