0

わかりましたので、ここに私の完全にめちゃくちゃな問題があります。必要なものを見つけるために、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 を検索し、ファイル内の電話番号を取得して表示するにはどうすればよいでしょうか。

これは大したことではないことはわかっていますが、小規模で検索する方法を見つけようとしているので、後で大きなファイルになるプロジェクトで作業できます。

将来の課題に必要なものを見つけたので、課題を作成する前に、古いファイルを編集して再生しようとしています。

正しい方向へのポイントだけがクールです。

非常に高度なものであっても、どんな助けも良いです。そうすれば、先生を混乱させることができます。笑 * *

これについてはまだ作業中なので、また更新するかもしれません。担当者が 6 人しかいないので、まだ自分の質問に答えることができません。

4

2 に答える 2

0

正しい方向へのポイントだけがクールです。

xml ファイルをデータ ソースとして使用し、LINQ を使用してそこからレコードを取得できます。xml 用に設計されたバージョンの LINQ もあります。

または、ファイルが大きいと言っても、データテーブルのメソッドを使用して xml ファイルをデータテーブルに直接ロードすることは可能であり、検索を確実にスピードアップします。

于 2013-10-24T15:55:20.407 に答える