これは、解析しようとしている XML 応答です。
<?xml version="1.0" encoding="utf-8"?>
<double xmlns="http://www.webserviceX.NET/">0.7627</double>
VB コード:
Dim responseString As String
Dim fromCurrency As String = "EUR"
Dim toCurrency As String = "USD"
Dim req As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://www.webservicex.net/CurrencyConvertor.asmx/ConversionRate?FromCurrency=" & fromCurrency & "&ToCurrency=" & toCurrency)
Dim Resp As System.Net.HttpWebResponse = req.GetResponse()
Dim reader As StreamReader = New StreamReader(Resp.GetResponseStream)
responseString = reader.ReadToEnd()
'get the XML
Dim objXML As New XmlDocument
objXML.LoadXml(responseString)
Dim root As XmlNode = objXML.DocumentElement
Dim nodeList As XmlNodeList = root.SelectNodes("/double")
「0.7627」の結果値を読み取るにはどうすればよいですか?
私は試した:
nodeList(0).InnerText
と
nodeList(0).SelectSingleNode("/double").InnerText
どちらも「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーをスローします。
名前空間マネージャーも追加してみました:
Dim mgr As XmlNamespaceManager = New XmlNamespaceManager(objXML.NameTable)
mgr.AddNamespace("currency", objXML.DocumentElement.NamespaceURI)
Dim node As XmlNode = objXML.SelectSingleNode("double", mgr)
そして、次の方法で選択します。
node.InnerText
ただし、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」もスローされます。