首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >处理RSS时的XMLException

处理RSS时的XMLException
EN

Stack Overflow用户
提问于 2015-06-18 16:53:19
回答 2查看 87关注 0票数 0

我一直试图在我的新闻阅读器应用程序中使用Argotic来处理RSS提要。对于大多数用户来说,它工作得很好,但是在某些提要(像这样)上,它会出现以下问题:

其他信息:出于安全原因,本XML文档禁止DTD。要启用DTD处理,请将XmlReaderSettings上的XmlReaderSettings属性设置为分析并将设置传递给XmlReader.Create方法。

错误很简单,我传递了一个启用了XMLReaderSettingsDtdProcessing对象。但随后出现了以下情况:

“System.Xml.XmlException”类型的未处理异常出现在System.Xml.dll附加信息中:“;”字符(十六进制值0x3B )不能包含在名称中。第9行,位置366。

我使用的代码:

代码语言:javascript
运行
复制
    XmlReaderSettings settings = new XmlReaderSettings();
    settings.IgnoreComments = true;
    settings.IgnoreWhitespace = true;
    settings.DtdProcessing = DtdProcessing.Parse;

    XmlReader reader = XmlReader.Create(this.url, settings);
    RssFeed feed = new RssFeed();
    feed.Load(reader);

我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-19 13:56:08

似乎忽略了DtdProcessing解决了我的问题。

代码语言:javascript
运行
复制
settings.DtdProcessing = DtdProcessing.Ignore;
票数 0
EN

Stack Overflow用户

发布于 2015-06-18 17:24:51

例外情况是告诉您RSS提要是非法的,具体来说,名称包含;字符。W3C规范似乎禁止这样做:

鼓励文档作者使用自然语言中有意义的单词或单词组合的名称,并避免在名称中使用符号或空白字符。请注意,冒号、连字符-减号、句号(句号)、低行(下划线)和中间DOT是明确允许的。 ASCII符号和标点符号以及相当大的Unicode符号组被排除在名称之外。

因为其他RSS阅读器也抱怨这个提要可能无效。但是,在编写本报告时,W3C验证器显示它是有效的

根据XmlReaderSettings.ConformanceLevel的MSDN文档,无论您的ConformanceLevel是什么,这个问题都会导致异常,但是您可能会在XmlReaderSettings中找到另一个可以关闭行为的设置(将设置提供给XmlReader.Create )。否则,如果不能修复提要,则必须对其执行一些预处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30921336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档