2012-01-05 34 views
1

私はvb.netとxmlreaderを使用しています。同じノード名で親ノード名が異なる入れ子ノードを検索するにはどうすればよいですか? xmlファイルの親ノード名は異なりますが、子ノード名は同じです。私は特定のノード名を検索するとき 私のコードは正常に動作しているが、一部の子ノードが同じノード名を持っているので、結果が正しくありません:同じノード名で親ノード名が異なる入れ子ノードを検索するにはどうすればよいですか?

While XmlReader.Read() 
      Select Case XmlReader.Name.ToString() 
       Case "NumberOfGrants" 
        strNumOfGrants = Trim(XmlReader.ReadString())     
       Case "G_Info" 
        If XmlReader.Name.ToString = "Name" Then 
         strGrant = Trim(XmlReader.ReadString()) 
        End If 
       Case "S_Info" 
        If XmlReader.Name.ToString = "Name" Then 
         strSupport = Trim(XmlReader.ReadString()) 
        End If 
       Case "D_Info" 
        If XmlReader.Name.ToString = "Name" Then 
         strDatabank = Trim(XmlReader.ReadString()) 
        End If 
      End Select 

私は各「G_Info /名前の値を得るのですか'、' S_Info/Name '、および' D_Info/Name 'ノードはありますか? "名前" ノードはONLY史上* _INFOタイプの下に表示された場合 おかげで、

答えて

0

私は、各* _INFOタイプのためのXmlDocumentとXPath ...

Dim tDocument as XmlDocument = New XmlDocument 
Dim tNodes As XmlNodeList = Nothing 

tDocument.Load("path to xml file") 
tNodes = tDocument.SelectNodes("G_Info/Name") 

For Each tNode As XmlNode In tNodes 
    Debug.Print("Name is " & tNode.Value) 
Next 

繰り返しを使用し...かと思いますXPathを "Name"に変更すると、それらのすべてが取得されます。

関連する問題