2015-04-20 116 views
0

你好我正在尝试从xml节点之间循环,但出于某种原因,我只得到第一个节点任何想法将不胜感激! XML:通过XML节点的VBA循环

<root> 
      <AC> 
      <answer id ="c1"> 
       blue 
      </answer> 
      <answer id ="c1"> 
       blue 
      </answer> 
</root> 

VBA代码:

 Set ques = getQues(qName) 'ques is in CreateObject("MSXML2.DOMDocument") format 

      Set nodes = ques.SelectNodes("/root/AC") 
      For Each node In nodes 
       MsgBox (node.SelectSingleNode("answer").Text) 
       Cells(i + 1, j).Value = node.SelectSingleNode("answer").Text 
      Next node 

谢谢您的帮助!

+2

你的XML不能很好地形成 - 缺少收盘'' –

回答

3

selectnodes只选择AC节点:它看起来像你真的想选择answer节点集合 -

Sub Tester() 

Dim d As New MSXML2.DOMDocument 
Dim nodes, nd 

    d.LoadXML Range("A1").Value 

    Set nodes = d.SelectNodes("/root/AC/answer") 
    For Each nd In nodes 
     Debug.Print nd.getAttribute("id"), nd.Text 
    Next nd 

End Sub 
+0

真棒这个是否感谢你的帮助!我编辑了我的代码,效果很棒! – paul590