2013-04-04 62 views
2

我正在VB.Net中開發一個應用程序。我是初學者,我正在努力解決這個問題:VB.Net - XML - 比較子元素名稱來填充文本框

我想讀一個子元素的名稱到我的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 

我必須填充文本框中txtDistrName與元素的值只有當元素名稱是「DistributorName」。

感謝Sam Rad的幫助,現在它工作正常。

何塞。

+0

我已經更新我的答案。如果有任何問題,請檢查並報告。 – 2013-04-04 22:26:53

回答

2

您需要更改您的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 
+0

Hi Sam Rad。不錯,這是問題所在。但是,以這種方式,我無法獲得子節點的文本值。我總是一無所獲(「」)。所以,請在下面找到我發現的價值並告訴我是否可以。 – JoseFernandes 2013-04-04 19:23:42

+0

你好@SamRad 非常感謝。現在工作正常。 乾杯。 – JoseFernandes 2013-04-05 14:22:10