我有一个看起来像这样的 xml 文档:
<rng>
<col1>
<row1>A</row1>
<row2>B</row2>
<row3>C</row3>
<row4>D</row4>
</col1>
<col2>
<row1>E</row1>
<row2>F</row2>
<row3>G</row3>
<row4>H</row4>
</col2>
</rng>
col节点更多,每个节点包含数千行元素。
我想从行元素中解析出值并最终将它们放到电子表格中。我目前这样做如下:
' get a list of the col elements (thi sits in a loop to go through them all)
Set oXMLColNodeList = oXMLDoc.selectNodes("//saveStates/rng/*")
' Lop through each column
For colNum = 1 To oXMLColNodeList.Length
' get all the row nodes for that coulmn
Set oXMLRowNodeList = oXMLDoc.selectNodes("//saveStates/rng"/col" & colNum & "/*")
' loop through all the row nodes
For rowNum = 1 To oXMLRowNodeList.Length
' get the node to do something with it
Set oXMLNode = oXMLDoc.selectSingleNode("//saveStates/rng/col" & colNum & "/row" & rowNum)
next rowNum
next colNum
即,我循环遍历 col 节点,然后遍历每个行节点以获取值 A、B、C、D 等。当行元素的数量接近数万时,它的速度非常缓慢。
我在解析 XML 文档方面没有太多经验,我正在寻找一种方法来同时从“行*”节点中提取所有值,而不必遍历它们。这可能吗?