【问题标题】:NullReferenceException while parsing XML解析 XML 时出现 NullReferenceException
【发布时间】:2014-03-23 15:29:31
【问题描述】:

我正在尝试将维基百科 API 用于一个简单的学校项目。我试图解析this URL 使用WebRequest 下载源和XElement 来解析数据。我正在使用以下代码

Dim request As WebRequest = WebRequest.Create("http://bg.wikipedia.org/w/api.php?action=opensearch&format=xml&search=" + text)
request.Credentials = CredentialCache.DefaultCredentials
Dim reader As New StreamReader(request.GetResponse().GetResponseStream())
Dim elm As XElement = XElement.Load(reader)
If elm IsNot Nothing Then

    Dim a As XElement = elm.Element("Section")

    For Each page As Object In a.Elements("Item")
        Dim title = page.Element("Text").Value
        Dim url = page.Element("image").Value

    Next
End If 

但我在For Each 的开头得到NullReferenceException。这是在 vbNET 中解析 XML 文档的正确方法吗?

【问题讨论】:

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


    【解决方案1】:

    试试这个

        If elm IsNot Nothing Then
            For Each xe As XElement In elm.Nodes
                If xe.Name.LocalName = "Section" Then
                    For Each sxe As XElement In xe.Nodes
                        If sxe.Name.LocalName = "Item" Then
                            Dim title As String
                            Dim url As String
                            For Each n As XElement In sxe.Nodes
                                If n.Name.LocalName = "Text" Then
                                    title = n.Value.ToString
                                ElseIf n.Name.LocalName = "Image" Then
                                    url = n.@source
                                End If
                            Next
                            Debug.WriteLine(title)
                            Debug.WriteLine(url)
                        End If
                    Next
                End If
            Next
        End If
    

    这或许可以使用 LINQ 来简化,但这只是一个开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 2013-01-03
      • 1970-01-01
      • 2018-03-09
      • 2011-02-16
      • 1970-01-01
      相关资源
      最近更新 更多