【问题标题】:Retrieve specific values from specific nodes - VB.NET XML HTTP GET从特定节点检索特定值 - VB.NET XML HTTP GET
【发布时间】:2014-05-07 12:16:32
【问题描述】:

我正在编写一个程序,它使用返回 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>

我希望将每个单独的节点返回到单独的记录,以便可以将其返回到一些文本框。

干杯:/

【问题讨论】:

    标签: .net xml vb.net


    【解决方案1】:

    由于您使用 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 '
    

    【讨论】:

      【解决方案2】:

      我为感兴趣的人使用了以下内容:

         Dim strReg
          Dim doc As XmlDocument = New XmlDocument()
      
      doc.Load(myURL)
      
              doc.SelectSingleNode("<root>/<node>").InnerText
      

      干杯。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-21
        • 2014-08-06
        • 1970-01-01
        • 2018-07-30
        • 1970-01-01
        相关资源
        最近更新 更多