2012-03-30 73 views
0

我使用下面的代碼從我的網站獲得一個XML數據:HTML GET讀取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.... 

任何幫助將是巨大的!

謝謝!

回答

1

由於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 
+0

太棒了,謝謝NoAliea! :O) – StealthRT 2012-03-30 23:27:24

1

如果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選擇您想要的元素。