好的,这是我完全搞砸的问题。我需要阅读几行xml条目以找到我需要的东西。 “举个例子” -
<?xml version="1.0" encoding="utf-8"?>
<!--XML Database.-->
<Data>
<Person>
<Name>hayyo</Name>
<Email>222@yolo.com</Email>
<Tel>345</Tel>
</Person>
<Person>
<Name>hihi</Name>
<Email>666@yolo.com</Email>
<Tel>665</Tel>
</Person>
</Data>
j * 我现在知道如何做几行xml条目。 (对我而言) *
Imports System.Xml
Public Class Form1
Dim XmlOut As XmlWriter
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
With XmlOut
' Start our first person.
.WriteStartElement("Person")
' The person nodes.
.WriteStartElement("Name")
.WriteString(fullName.Text.ToString())
.WriteEndElement()
.WriteStartElement("Email")
.WriteString(address.Text.ToString())
.WriteEndElement()
.WriteStartElement("Tel")
.WriteString(phoneNum.Text.ToString())
.WriteEndElement()
' The end of this person.
.WriteEndElement()
End With
MessageBox.Show("XML file saved.")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Form2.Show()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
' Close the XmlTextWriter.
XmlOut.WriteEndDocument()
XmlOut.Close()
MessageBox.Show("XML file ended.")
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim settings As New XmlWriterSettings()
settings.Indent = True
' Initialize the XmlWriter.
XmlOut = XmlWriter.Create("MyName.xml", settings)
' Write the Xml declaration.
XmlOut.WriteStartDocument()
' Write a comment.
XmlOut.WriteComment("XML Database.")
' Write the root element.
XmlOut.WriteStartElement("Data")
End Sub
但是我不知道如何显示条目。 我只想要显示名称。它现在只显示最后一个条目。
Imports System.Xml
Imports System.IO
Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
If (Search.Text = "") Then
MessageBox.Show("No file name entered")
Else
If (System.IO.File.Exists(Search.Text.ToString())) Then
Dim document As XmlReader = New XmlTextReader(Search.Text.ToString())
While (document.Read())
Dim type = document.NodeType
If (type = XmlNodeType.Element) Then
If (document.Name = "Name") Then
XmlName.Visible = True
XmlName.Text = document.ReadInnerXml.ToString()
End If
If (document.Name = "Email") Then
XmlAddress.Visible = True
XmlAddress.Text = document.ReadInnerXml.ToString()
End If
If (document.Name = "Tel") Then
XmlPhone.Visible = True
XmlPhone.Text = document.ReadInnerXml.ToString()
End If
End If
End While
Else
MessageBox.Show("The filename you selected was not found.")
End If
End If
End Sub
End Class
另外,我将如何搜索xml文件以查找hihi然后将其电话号码拉入文件并显示。
我知道这不是很多,但我试图找出如何小规模搜索,所以我可以稍后在一个大文件的项目中工作。
我刚刚想出了我将来的作业所需要的内容,所以在构建作业之前,我正在尝试编辑一个旧文件。
正确方向的一点是很酷的。
任何帮助都是好的,甚至是非常先进的东西。这样我就可以把老师的混乱弄糊涂了。 lol * *
我仍在努力,所以我可能会再次更新。我只有6个代表,所以我还不能回答我自己的问题。
答案 0 :(得分:0)
正确方向的一点是很酷的。
您可以将xml文件用作数据源,并使用LINQ从中提取记录。甚至还有一个为xml设计的LINQ版本。
或者,即使您说文件很大,也可以使用数据表中的方法将xml文件直接加载到数据表中,这样可以加快搜索速度。
答案 1 :(得分:0)
首先创建一个空的控制台应用程序,将此代码放入其中:
Module Module1
Sub Main()
Dim xml = <?xml version="1.0" encoding="utf-8"?>
<!--XML Database.-->
<Data>
<Person>
<Name>hayyo</Name>
<Email>222@yolo.com</Email>
<Tel>345</Tel>
</Person>
<Person>
<Name>hihi</Name>
<Email>666@yolo.com</Email>
<Tel>665</Tel>
</Person>
</Data>
Dim p = xml.Root.Descendants("Name") '<----
End Sub
End Module
此时p将包含Name of Name节点(XElement)。使用LINQ或循环迭代并根据需要显示。
在您的情况下,您可能正在从文件加载XML,因此请使用XDocument.Load。