我用我的代码点击了一些砖墙。
我正在尝试读取一系列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”变量更改为数组,但它会产生相同的结果。
提前感谢您的所有回复,现在已经围绕这个圈子了一段时间了!
干杯
答案 0 :(得分:3)
您的代码仅选择节点options
并返回筛选的内部文本(不包含XML部分)
尝试
nodelist = xml_doc.SelectNodes("scene1/options/*")
选择单个子节点。