2012-01-05 182 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'节点? 感谢,

回答

0

我会使用的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 

重复每个* _info类型...或者,如果ONLY曾经下* _info类型出现的 “名称” 节点..您可以将XPath更改为“名称”,并将它们全部取出。

相关问题