【问题标题】:Getting error for DTD download when parsing XML解析 XML 时获取 DTD 下载错误
【发布时间】:2013-02-08 03:45:31
【问题描述】:

我正在从事 vb.net 项目,我已经创建了动态新闻 tiker。

代码:

Imports System.ServiceModel.Syndication
Imports System.Xml

Partial Class DynamicTicker
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'Get the latest syndicated content from my Twitter feed!
        Dim myTweets As SyndicationFeed = SyndicationFeed.Load(XmlReader.Create("https://twitter.com/ashuthinks"))

        'Bind myTweets to the ListView
        lvTweets.DataSource = myTweets.Items
        lvTweets.DataBind()
    End Sub

    Protected Function FormatSummary(ByVal summary As String) As String
        Const SummaryHeader As String = "ScottOnWriting: "

        'Remove the leading "ScottOnWriting: "
        If summary.StartsWith(SummaryHeader) Then
            Return summary.Substring(SummaryHeader.Length)
        End If
    End Function

    Protected Function FormatPubDate(ByVal pubDate As DateTime) As String
        Return pubDate.ToString("h:mm, MMM d")
    End Function

End Class

但这给了我以下错误:

出于安全原因,此 XML 文档中禁止使用 DTD。要启用 DTD 处理,请将 XmlReaderSettings 上的 DtdProcessing 属性设置为 Parse 并将设置传递给 XmlReader.Create 方法。

我应该在我的代码中哪里提到设置?

【问题讨论】:

  • 您是否尝试按照异常文本的建议进行操作?或者您在理解信息时遇到困难?我不知道任何关于该异常的具体信息,但这是我会尝试的第一件事。
  • 我无法在我的 vb.net 代码中设置 XmlReaderSettings
  • 你看过MSDN中的例子吗? msdn.microsoft.com/en-us/library/ms162474.aspx

标签: .net xml vb.net xml-parsing


【解决方案1】:
Dim settings As XmlReaderSettings = new XmlReaderSettings()
settings.DtdProcessing = DtdProcessing.Parse;
Dim myTweets As SyndicationFeed =     SyndicationFeed.Load(XmlReader.Create("https://twitter.com/ashuthinks"),settings)

对不起,如果我的语法不对,请不要编写太多 VB.NET 代码。

【讨论】:

    【解决方案2】:
    Dim settings As New XmlReaderSettings
       settings.DtdProcessing = DtdProcessing.Parse
       settings.ValidationType = ValidationType.DTD
       Dim xmlR = XmlReader.Create(Currentfile, settings)
    

    【讨论】:

    • 没有任何解释的代码转储很少有帮助。 Stack Overflow 是关于学习的,而不是提供 sn-ps 来盲目复制和粘贴。请edit您的问题并解释它如何比OP提供的更好。
    猜你喜欢
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 2010-11-03
    • 2023-03-22
    • 2018-03-25
    • 2016-01-13
    • 1970-01-01
    相关资源
    最近更新 更多