XML Reader 变量 VB.NET

XML Reader Variables VB.NET

正在开发基本文件和文本的管理程序。

现在,到目前为止,程序正在将来自多个文本框的信息正确保存到一个 .xml 文件中。

我的问题是我需要将保存的文件加载回文本框。 这里是another thread I made to Microsoft explaining my issue;

对,所以我目前拥有和使用的代码;

Private Sub Objectlist1_ItemActivate(sender As Object, e As EventArgs) Handles Objectlist1.ItemActivate
    Caseworker.Show() 
    Me.Objectlist1.MultiSelect = False

    Dim selectedListViewItem As String
    selectedListViewItem = Me.Objectlist1.SelectedItems.Item(0).ToString

    If (IO.File.Exists(selectedListViewItem + "C:\Users\USER\Desktop\Testfolder-data")) Then
        Dim document As XmlReader = New XmlTextReader(selectedListViewItem + "C:\Users\USER\Desktop\Testfolder-data")

        While (document.Read())
            Dim type = document.NodeType

            If (type = XmlNodeType.Element) Then
                If (document.Name = "Person") Then
                    Caseworker.Pholderbox.Text = document.ReadInnerXml.ToString()
                End If

                If (document.Name = "Driver") Then
                    Caseworker.Driverbox.Text = document.ReadInnerXml.ToString()

这里的问题是我希望能够在列表视图中单击一个名为 "Objectlist1" 的文件,然后程序加载 xml 文件 - 而不是将程序定向到一个文件

如此

If (IO.File.Exists("MyXML.xml")) Then
    Dim document As XmlReader = New XmlTextReader("MyXML.xml)

显然有这个变量可以完美解决我的问题,但我已经查找了 2 个工作日,但未能找到它。

如果我需要添加其他东西才能使它正常工作,非常感谢您提供的任何帮助。

伙计们,我离这里很远吗?

几件事:

您需要 XMLFile 的完整路径,而不仅仅是它的名称。你可以这样做(警告:未经测试):

const string basepath= @"C:\Users\USER\Desktop\Testfolder-data"

xmlpath = IO.Path.Combine(basepath, Objectlist1.SelectedItems.Item(0).Text)
If(IO.File.Exists(xmlpath))

我推荐

而不是多个 Ifs
switch(document.Name)
  {
      Case "Person":
        Caseworker.Pholderbox.Text=...
        break;

      Case "Driver":
      ...
  }

如果将 "Pholderbox" 重命名为 "Personbox",则可以节省整个 If/switch,只需执行以下操作即可:

var textbox = document.name + "box";
(TextBox)Caseworker.Controls[textbox].Text=document.InnerText;

希望这能让你继续前进。