XPathNodeIteratorを使用してXMLファイル内の項目のリストを反復処理するにはどうすればよいですか?


0

これは私のXMLファイルのサンプル(少し編集していますが、アイデアを得る)である:

<HostCollection> 
    <ApplicationInfo /> 
    <Hosts> 
    <Host> 
     <Name>Test</Name> 
     <IP>192.168.1.1</IP> 
    </Host> 
    <Host> 
     <Name>Test</Name> 
     <IP>192.168.1.2</IP> 
    </Host> 
    </Hosts> 
</HostCollection> 

ときは自分のアプリケーション(VB.NETアプリ)の負荷、私はホストとそのリストをループにしたいです属性を追加してコレクションに追加します。私はこのためにXPathNodeIteratorを使うことができたと思っていました。私がオンラインで見つけた例は、少し混乱しているように見えました。私は、ここの誰かが少し物事をクリアすることを望んでいます。

1

あなたがXmlDocumentオブジェクトにロードしてのNodeListを埋めるために、XPath文を使用することができます...

Dim doc As XmlDocument = New XmlDocument() 
doc.Load("hosts.xml") 
Dim nodeList as XmlNodeList 
nodeList = doc.SelectNodes("/HostCollectionInfo/Hosts/Host") 

その後のノードをループ


1
 XPathDocument xpathDoc; 
     using (StreamReader input = ...) 
     {     
      xpathDoc = new XPathDocument(input); 
     } 

     XPathNavigator nav = xpathDoc.CreateNavigator(); 
     XmlNamespaceManager nsmgr = new XmlNamespaceManager(nav.NameTable); 

     XPathNodeIterator nodes = nav.Select("/HostCollection/Hosts/Host", nsmgr); 

     while (nodes.MoveNext()) 
     { 
      // access the current Host with nodes.Current 
     }