HTML ПОЛУЧИТЕ чтение XML - PullRequest
       12

HTML ПОЛУЧИТЕ чтение XML

0 голосов
/ 31 марта 2012

Я использую следующий код для получения данных XML с моего веб-сайта:

Dim strUrl As String = "http://www.xxx.net/mobileApp/checker.asp"
   Dim reader As XmlTextReader = New XmlTextReader(strUrl)

   Do While (reader.Read())
      Select Case reader.NodeType
         Case XmlNodeType.Text 'Display the text in each element.
              Console.WriteLine(reader.Value)
      End Select
   Loop
Console.ReadLine()

Мой XML-файл выглядит так:

<mobileApp>
   <jobid>513220</jobid>
   <ncdid>02132265</ncdid>
   <ncddescript>blah blah and more blah</ncddescript>
</mobileApp>

Проблема в том, что, хотя он показывает текст в тегах, я ищу, чтобы найти имя тегов, и ТОЛЬКО получить связанный с ним текст вместо того, чтобы просто полагаться на данные, чтобы они всегда были в одном и том же порядке. время.

Пример того, что я ищу:

case tags
   "jobid"
       msgbox "jobid is " & tags.jobid.value
etc....

Любая помощь будет отличной!

Спасибо!

Ответы [ 2 ]

1 голос
/ 31 марта 2012

Поскольку XMLTextReader читает файл последовательно, имя элемента будет отображаться непосредственно перед его значением.Следите за этим в строковой переменной и делайте выбор из этого.

    Dim strElementName As String = String.Empty

    Do While (reader.Read())

        If reader.NodeType = XmlNodeType.Element Then

            strElementName = reader.Name

        ElseIf reader.NodeType = XmlNodeType.Text Then

            Select Case strElementName

                Case "jobid"

                    'Do Work

            End Select

        End If

    Loop
1 голос
/ 31 марта 2012

Если XML-файл будет иметь один и тот же набор элементов каждый раз, вы можете использовать XPath для запроса XML-файла для определенных элементов, а затем вывести значение каждого из них.Что-то вроде:

Dim strUrl As String = "http://www.xxx.net/mobileApp/checker.asp"
Dim XPathDoc As New XPathDocument(New XmlTextReader(strUrl))
Dim Nav As XPathNavigator = XPathDoc.CreateNavigator()

'Query for jobid element
Dim JobIDElem As XPathNodeIterator = Nav.SelectSingleNode("./mobileApp/jobid")
MsgBox("JobID is " & JobIDElem.Value)

Чтобы получить другой элемент, просто измените строку поиска в SelectSingleNode, чтобы выбрать нужный элемент.

...