【问题标题】:VB.Net - XML - Comparing a Child Element Name to fill a TextBoxVB.Net - XML - 比较子元素名称以填充文本框
【发布时间】:2013-04-04 08:26:47
【问题描述】:

我正在 VB.Net 中开发一个应用程序。我是初学者,我正在努力解决这个问题:

我想将一个子元素的名称读入我的 xml 文件并进行比较。如果这个值匹配,我将用这个元素的值填充一个文本框。请在下面找到我的程序的这一部分(经过改进编辑):

Private Sub ReadXMLFile(path As String)
Dim reader As XmlTextReader = New XmlTextReader(path)
Dim elements As ArrayList = New ArrayList

Do While (reader.Read())
    Select Case reader.Name
        Case "DistributorName"
            Do While (reader.Read())
                If XmlNodeType.Text Then
                    txtDistrName.Text = reader.Value
                End If
            Loop
    End Select
End Sub

仅当元素名称为“DistributorName”时,我必须使用元素的值填充文本框 txtDistrName。

感谢 Sam Rad 的帮助,现在一切正常。

何塞。

【问题讨论】:

  • 我已经更新了我的答案。如果有任何问题,请检查并报告。

标签: xml vb.net


【解决方案1】:

您需要更改您的Case 语句。我想你把它误认为If

Private Sub ReadXMLFile(path As String)
    Dim reader As XmlTextReader = New XmlTextReader(path)

    Do While (reader.Read())
        Select Case reader.Name
            Case "DistributorName" // <------ Here
                txtDistrName.Text = reader.Value
        End Select
    Loop
end sub

对于您的第二个问题,我已将循环更改为:

    Dim reader As XmlTextReader = New XmlTextReader("yourXmlPath")
    reader.WhitespaceHandling = WhitespaceHandling.None

    Do While (reader.Read())
        Select Case reader.NodeType
            Case XmlNodeType.Element
                If reader.Name = "DistributorName" Then
                    txtDistrName.Text = reader.ReadElementContentAsString()
                End If                          
        End Select
    Loop

【讨论】:

  • 嗨山姆拉德。是的,这就是问题所在。但是,通过这种方式我无法获取子节点的文本值。我总是一无所获(“”)。所以,请在下面找到我找到的获取值的方法,并告诉我是否可以。
  • 你好@SamRad 非常感谢。现在工作正常。干杯。
猜你喜欢
  • 1970-01-01
  • 2019-01-14
  • 2013-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多