读取XML和Visual Basic
我正在尝试使用一个简单的XML文件和Visual Basic(2017) xml文件如下所示。我有一个带有一些文本框的表单设置。第一个框,用户将在其中输入值1、2或3。然后,我需要根据输入到第一个文本框中的内容,将来自世界名称、大小和人口的xml数据写入3个单独的文本框中。希望这是有道理的读取XML和Visual Basic,xml,vb.net,Xml,Vb.net,我正在尝试使用一个简单的XML文件和Visual Basic(2017) xml文件如下所示。我有一个带有一些文本框的表单设置。第一个框,用户将在其中输入值1、2或3。然后,我需要根据输入到第一个文本框中的内容,将来自世界名称、大小和人口的xml数据写入3个单独的文本框中。希望这是有道理的 <worlddetails> <worlds> <code>1</code> <worldname>Planet 1> <size>
<worlddetails>
<worlds>
<code>1</code>
<worldname>Planet 1>
<size>36000</size>
<population>34000000</population>
</worlds>
<worlds>
<code>2</code>
<worldname>Planet 2>
<size>35000</size>
<population>24000000</population>
</worlds>
<worlds>
<code>3</code>
<worldname>Planet 3>
<size>46000</size>
<population>14000000</population>
</worlds>
</worlddetails>
首先,您的XML是错误的。应该是这样的:
<worlddetails>
<worlds>
<world name="1">
<code>1</code>
<size>36000</size>
<population>34000000</population>
</world>
<world name="2">
<code>2</code>
<size>35000</size>
<population>24000000</population>
</world>
<world name="3">
<code>3</code>
<size>46000</size>
<population>14000000</population>
</world>
</worlds>
</worlddetails>
修复后,只需使用此函数(未测试,可能需要修改)并将行星编号作为参数传递,即可实现目标。
它将把所需的行星数据收集到一个字符串数组中,该数组将在函数结束后返回。如果在XML文件中找不到行星,函数将返回-1
到数组的第一个位置
Private Function getPlanetData(ByVal planetNo As Integer) As String()
Dim planetData() As String = New String() {}
Dim i As Integer = 0
Dim doc As New Xml.XmlDocument
Try
doc.Load("yourXMLDocument.xml")
Dim node As XmlNode = doc.SelectSingleNode("world[@name='" & planetNo & "']")
If Not (node Is Nothing) Then
Dim childList As Xml.XmlNodeList
childList = node.ChildNodes
ReDim planetData(childList.Count - 1)
For Each child As XmlNode In childList
planetData(i) = child.InnerText
i += 1
Next
Else
planetData(0) = -1
End If
Return planetData
Catch ex As Exception
planetData(0) = -1
Return planetData
MsgBox("There was an error when collecting data. ERROR: " & ex.message)
End Try
End Function
您尝试了什么?显示您尝试过的代码,并包括您遇到问题的具体细节。欢迎使用堆栈溢出!请阅读。此外,
world details
和world name
是无效的XML标记名(标记名中不能有空格),并且Planet 1>
在XML中无效(您的结束标记格式不正确)。那个文件甚至不是我刚才输入的有效XML。我正在努力解决这个问题,因为我已经看到了关于如何读取和显示xml数据的文章,但我无法解决如何使它只根据在第一个文本框中看到的内容进行读取。请原谅我的英语。