VB.net将XML元素读入Combobox

时间:2014-01-27 19:31:57

标签: xml vb.net loops 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>

期望的效果是组合框将填充“options”的所有子节点的值。它应该有“91”作为一个项目,“45”作为另一个项目......等等。目前我将“9145801485”作为一个项目。

这段代码将用于读取多个不同的XML文件,这些XML文件将遵循相同的结构,但将具有不同数量的选项,因此例如此文件有5个选项,下一个文件可能有3个,后一个文件有一个因此,代码需要在这方面保持动态。

我尝试将“node”变量更改为数组,但它会产生相同的结果。

提前感谢您的所有回复,现在已经围绕这个圈子了一段时间了!

干杯

1 个答案:

答案 0 :(得分:3)

您的代码仅选择节点options并返回筛选的内部文本(不包含XML部分) 尝试

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

选择单个子节点。