1
を使用してXMLタグを読み取るための正しいパスをフォーマット私は、次のコードVB.net
Imports System.Xml
Public Class Form1
Private Sub Convert_Button_Click(sender As Object, e As EventArgs) Handles Convert_Button.Click
Dim doc As New XmlDocument()
doc.Load("C:\Test\Inventory.xml")
Dim nodes As XmlNodeList = doc.DocumentElement.SelectNodes("/IXFleet/SyncData/Transaction")
Dim product_id As String = "", product_name As String = "", product_price As String = ""
For Each node As XmlNode In nodes
product_id = node.SelectSingleNode("SiteID").InnerText
product_name = node.SelectSingleNode("TankID").InnerText
product_price = node.SelectSingleNode("TankNumber").InnerText
MessageBox.Show(product_id & " " & product_name & " " & product_price)
Next
End Sub
End Class
を使用しようとしていますそして、私は、次のXMLデータに
<IXFleet>
<SyncConfig xmlns="http://tempuri.org/SyncConfig.xsd"/>
<SyncData xmlns="http://tempuri.org/SyncData.xsd">
<Transaction>
<SiteID>1</SiteID>
<TankID>1</TankID>
<TankNumber>1</TankNumber>
</Transaction>
</SyncData>
</IXFleet>
私の問題を読みしようとしています実際にトランザクションノードに到達して、SiteID、TankID、およびTankNumberを読み取るために、このコードセクションを適切にフォーマットする方法(具体的には、タグパスのSyncData部分)を知りませんか。
XMLファイルのSyncDataノードで余分なデータ(xmlns = "http://tempuri.org/SyncData.xsd")を手作業で削除し、そのパスをVBコードでそのまま使用すると、余分なデータをXMLに戻すと、データが見つからなくなります。
ご協力いただければ幸いです。
コードでも同じ結果が編集されました...エラーは発生しませんが、データはメッセージボックスにも入力されません。私は、ライン4のnsmgr.AddNamespace( "sd"、 "http://tempuri.org/SyncData.xsd")にxmlns =が含まれていないことに気付きました。元のXMLに含まれていました...結果。 –
奇妙なことに、私はあなたのサンプルデータでこのコードを実行していて、うまくいきました。確かに、 '.Load'の代わりに' .LoadXml'を使用して、文字列を直接追加することはできましたが、それは変更されません。コードをコピー/ペーストしましたか?確かに正しく適用されていますか? – FloatingKiwi
私のバッド.....私は再び見て、間違ったXMLファイル名を指していた。私はそれにXLMNSと1つのファイル名を持っていた。一度私は正しいファイルを指差し、それは魅力のように働いた。私にそれを手伝ってくれてありがとう。私は昨夜、Googleに答えようと時間を費やしました。非常に高く評価。 –