![](/img/trans.png)
[英]How do I get values as strings from a specific key in a JSON key-value pair in VB.net?
[英]Retrieve specific values from specific nodes - VB.NET XML HTTP GET
我有一個正在編寫的程序,該程序使用返回XML的HTTP GET調用Feed。
我已經編寫了能夠讀取每個元素及其值的代碼,但我只希望將特定的元素值檢索到特定的變量。
我可以使用嵌套的If語句來檢查“ reader.value”,然后將其放入相關變量,但是感覺這似乎很麻煩,並且希望有一個更好的理解。
這是我當前的代碼:
Const URLString As String = "https://geturl"
Dim reader As XmlTextReader = New XmlTextReader(URLString)
Do While (reader.Read())
Select Case reader.NodeType
Case XmlNodeType.Element 'Display beginning of element.
Console.Write("<" + reader.Name)
If reader.HasAttributes Then 'If attributes exist
While reader.MoveToNextAttribute()
'Display attribute name and value.
Console.Write(" {0}='{1}'", reader.Name, reader.Value)
MsgBox(reader.Value)
End While
End If
Console.WriteLine(">")
Case XmlNodeType.Text 'Display the text in each element.
Console.WriteLine(reader.Value)
Case XmlNodeType.EndElement 'Display end of element.
Console.Write("</" + reader.Name)
Console.WriteLine(">")
End Select
Loop
這是返回的信息:
<result id="4198608" generated="1399463340" mode="live" account_id="428">
<vrm>GY08OJB</vrm>
<make>AUDI</make>
<model>A6 SE TDI</model>
<colour>BLACK</colour>
<body>ESTATE</body>
<doors>5 DOORS</doors>
<engine_size>1968</engine_size>
<fuel>HEAVY OIL</fuel>
</result>
我希望將每個單獨的節點返回到一個單獨的記錄,以便可以將其返回到一些文本框。
歡呼聲:/
由於使用的是VB.Net,因此可以輕松進行操作並使用XML文字:
' Load your xml into an XElement '
Dim xml = <result id="4198608" generated="1399463340" mode="live" account_id="428">
<vrm>GY08OJB</vrm>
<make>AUDI</make>
<model>A6 SE TDI</model>
<colour>BLACK</colour>
<body>ESTATE</body>
<doors>5 DOORS</doors>
<engine_size>1968</engine_size>
<fuel>HEAVY OIL</fuel>
</result>
Dim vrm = xml.<vrm>.Value ' is now GY08OJB '
Dim make = xml.<make>.Value ' is now AUDI '
Dim model = xml.<model>.Value ' is now A6 SE TDI '
我對感興趣的任何人使用了以下內容:
Dim strReg
Dim doc As XmlDocument = New XmlDocument()
doc.Load(myURL)
doc.SelectSingleNode("<root>/<node>").InnerText
干杯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.