[英]Formatting the correct path to read an xml tag using 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>
我的問題是我不知道如何正確格式化這部分代碼(特別是標記路徑的SyncData部分)實際到達Transaction節點,讀取SiteID,TankID和TankNumber
Dim nodes As XmlNodeList = doc.DocumentElement.SelectNodes("/IXFleet/SyncData/Transaction")
如果我手動刪除XML文件,SyncData節點中的額外數據(xmlns =“http://tempuri.org/SyncData.xsd”),並使用VB代碼中的路徑,它可以工作,放入額外的數據回到XML,它失敗了,根本找不到任何數據。
任何幫助肯定會受到贊賞。
你需要一個NamespaceManager
。 然后使用名稱空間前綴執行所有查詢並傳入管理器。
Dim doc As New XmlDocument()
doc.Load("C:\Test\Inventory.xml")
Dim nsmgr = New XmlNamespaceManager(doc.NameTable)
nsmgr.AddNamespace("sd", "http://tempuri.org/SyncData.xsd")
Dim nodes As XmlNodeList = doc.DocumentElement.SelectNodes("/IXFleet/sd:SyncData/sd:Transaction", nsmgr)
Dim product_id As String = "", product_name As String = "", product_price As String = ""
For Each node As XmlNode In nodes
product_id = node.SelectSingleNode("sd:SiteID", nsmgr).InnerText
product_name = node.SelectSingleNode("sd:TankID", nsmgr).InnerText
product_price = node.SelectSingleNode("sd:TankNumber", nsmgr).InnerText
MessageBox.Show(product_id & " " & product_name & " " & product_price)
Next
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.