2012-12-22 57 views
1

獲得元素的名稱我有這樣一個XML文件:如何從XML文檔在vb.net

<config> 
    <email Host="201.0.0.0" From="[email protected]" Pass="xxx" Name="xxx"/> 
    <gir g1="Traditional" g2="mid Techn" g3="High Tech"/> 
    <costs> 
    <Pre-Incube inscr="7000.00" add="300.00"/> 
    <Normal  inscr="1600.00" inc="7000.00" add="500.00"/> 
    <Urgent  inscr="1600.00" inc="5000.00" add="500.00"/> 
    <Estance  inscr="1600.00" men="2500.00"/> 
    <Post   inscr="1600.00" men="1500.00"/> 
    </costs> 
</config> 

要獲取元素的屬性「吉爾」我做

Dim doc As XmlDocument = New XmlDocument() 
doc.Load(path) 
Dim root As XmlNode = doc.DocumentElement   
Dim nodeGir As XmlNode = root.SelectSingleNode("/config/gir") 
cboGir.Items.Add(nodeGir.Attributes.ItemOf("g1").InnerText) 
cboGir.Items.Add(nodeGir.Attributes.ItemOf("g2").InnerText) 
cboGir.Items.Add(nodeGir.Attributes.ItemOf("g3").InnerText) 

但我怎麼得到名稱的子元素下的「成本」:

Pre-Incube, Normal, Urgent, Estance, Post 

回答

2

從改編:

Dim costs As XmlNode = root.SelectSingleNode("/config/costs") 

Dim i As Integer 
For i = 0 To costs.ChildNodes.Count - 1 
    cboGir.Items.Add(costs.ChildNodes[i].Name) 
Next i 

或者可能更容易(從this MSDN page):

Dim costs As XmlNodeList = root.SelectNodes("/config/costs/*") 
For Each book In costs  
    cboGir.Items.Add(book.Name) 
Next 

NameXmlNode一個屬性 - 該文檔是你的朋友。

+0

我曾經嘗試都 '昏暗節點的XmlNode = root.SelectSingleNode(「/配置/成本「) 對於每個實例作爲XmlNode的在node.ChildNodes cboGir.Items.Add(instance.InnerText) Next' 而 '昏暗成本的XmlNodeList = root.SelectNodes(」/配置/成本「) 對於每個book In費用 Console.W riteLine(book.InnerText) Next' 但我試圖填充的組合框是空的 – cMinor

+0

對不起,我已更新我的答案以符合您的具體情況。 – RichardTowers

+0

放大您的幫助,但我正在尋找「費用」的元素,而不是該元素的atts,我試過了你的代碼,但我仍然沒有在組合框中找到任何東西 – cMinor

2

要得到所有的費用兒童元素的名稱,你可以這樣做:

For Each node As XmlNode In doc.SelectNodes("/config/costs/*") 
    cboGir.Items.Add(node.Name) 
Next