加载xml文档失败,带有特殊字符»
我正在使用RSS提要,该文档包含一个特殊字符»
我猜测饲料编码不正确,但我不能改变它。 我想覆盖它,或者只是用友好的东西替换有问题的字符。
using (Stream stream = response.GetResponseStream()) { using (XmlReader reader = XmlReader.Create(stream)) { try { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(reader); //<--- FAILS HERE //parse the items of the feed
…
»
是HTML命名实体 ,XML不支持。 开箱即用,XML 仅支持 &
, '
, "
, >
和<
。
使用相应的数字实体»
(或hex»
)代替。
+1弗雷德里克说的话。 你也可以作为一个原始的非转义字符服务,大概用UTF-8编码。
如果它是别人的RSS源,你需要踢它们以停止生成格式错误的XML; 没有XML解析器会读取这个。
在
元素中,HTML内容通常应该是XML转义的。 因此,如果项目的描述是This is a really interesting article
,它应该在XML中显示为:
This is a <em>really</em> interesting article
因此,HTML编码的»
字符应该是
»
如果直接从HTML源包含它而不进行转义,则这是一个更严重的XML注入问题。
(这是假设RSS 2.0。在各种早期版本的RSS中,
包含HTML或纯文本是否因规格而异,有时完全没有指定。对于旧的RSS版本,根本不可能使用HTML内容。)