2014-01-27 45 views
2

我用我的代碼碰到了一些磚牆。VB.net將XML元素讀入Combobox

我正在嘗試讀取一系列XML元素,並將那些「Inner.text」值添加爲組合框的單獨項目。代碼部分工作在於它成功讀取了元素值,但不是將它們作爲單獨項添加到組合框中,而是將它們連接成一個長字符串! (見代碼段和以下XML文檔)

VB.net代碼:

Dim xml_doc As New XmlDocument 
     Dim nodelist As XmlNodeList 
     Dim node As XmlElement 
     xml_doc.Load(Start_Point) 

     nodelist = xml_doc.SelectNodes("scene1/options") 
     For Each node In nodelist 
      ComboBox1.Items.Add(node.InnerText()) 
     Next 

XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
<scene1> 
    <title>Title</title> 
    <body> 
      File body text 
    </body> 
    <options> 
     <p1>91</p1> 
     <p2>45</p2> 
     <p3>80</p3> 
     <p4>14</p4> 
     <p5>85</p5> 
    </options> 
</scene1> 

的期望的效果是,組合框將與值填充所有「選項」的子節點。它應該有「91」作爲一個項目,「45」作爲另一個項目......等等。目前我獲得「9145801485」作爲一個項目。

該代碼塊將用於讀取多個不同的XML文件,這些文件將遵循相同的結構,但將具有不同數量的選項,例如,該文件有5個選項,下一個文件可能有3個選項,在那之後8.所以代碼在這方面需要是動態的。

我曾嘗試將「節點」變量更改爲數組,但它會產生相同的結果。

非常感謝您提供的所有回覆,現在已經一段時間一直圍繞着這個圈子!

乾杯

+0

你的問題在這裏'nodelist = xml_doc.SelectNodes(「scene1/options」)'。具體來說,這裏''scene1/options'' –

+0

非常感謝,我可以看到我錯了,現在一切都合情合理!再次感謝您的幫助 – R5DDX123

回答

3

您的代碼只選擇節點options並返回過篩內部文本(無XML份)。
嘗試

nodelist = xml_doc.SelectNodes("scene1/options/*") 

選擇單個子節點。