我有一个VB.net程序。我正在尝试使用XMLReader来读取.xml文件。我想打破XML文件,将其整理到不同的“部分”中,在此示例"FormTitle"
和"ButtonTitle"
中。我想抓取<Text>
中的FormTitle
数据并将其显示为表单"text"
,然后点击<Text>
中的"ButtonTitle"
并将其显示在按钮中文本。
这是我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<!--XML Database.-->
<FormTitle>
<Text>Form Test</Text>
</FormTitle>
<ButtonTitle>
<Text>Button Test</Text>
</ButtonTitle>
这是我目前的代码:
If (IO.File.Exists("C:\testing.xml")) Then
Dim document As XmlReader = New XmlTextReader("C:\testing.xml")
While (document.Read())
Dim type = document.NodeType
If (type = XmlNodeType.Element) Then
'
If (document.Name = "Text") Then
Me.Text = document.ReadInnerXml.ToString()
End If
End If
End While
Else
MessageBox.Show("The filename you selected was not found.")
End If
如何引入下一部分(ButtonTitle)
使用FormTitle
中(Text)
的同名。我想我需要在if then语句中引用FormTitle
和ButtonTitle
吗?
答案 0 :(得分:2)
查看此示例。 http://msdn.microsoft.com/en-us/library/dc0c9ekk.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2
你应该可以使用:
doc.GetElementsByTagName("FormTitle")
然后,您可以循环遍历所有子节点。 http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.childnodes.aspx
Dim root As XmlNode = doc.GetElementsByTagName("FormTitle").Item(1)
'Display the contents of the child nodes.
If root.HasChildNodes Then
Dim i As Integer
For i = 0 To root.ChildNodes.Count - 1
Console.WriteLine(root.ChildNodes(i).InnerText)
Next i
End If
答案 1 :(得分:1)
使用XDocument可以更有效地读取Xml,并且由于语法较少而更具可读性。
您需要在XML中添加根。我称它为root,但它可以是任何东西。它只是封装了所有的XML
<?xml version="1.0" encoding="utf-8"?>
<root>
<FormTitle>
<Text>Form Test</Text>
</FormTitle>
<ButtonTitle>
<Text>Button Test</Text>
</ButtonTitle>
</root>
以下是从FormTitle
中提取“表单测试”的示例 Dim document As XDocument = XDocument.Load("c:\tmp\test.xml")
Dim title = From t In document.Descendants("FormTitle") Select t.Value
将文字分配给表格
Form1.Text = title.First()