0
我必须将XMLnodelists合并为一个。 所以我想oNodelist_B的内容复制到oNodeList_A在VBA中合并两个XMLnodelist
Set oNodeList_A = xmldoc.getElementsByTagName("A")
Set oNodeList_B = xmldoc.getElementsByTagName("B")
人有一个想法?
我必须将XMLnodelists合并为一个。 所以我想oNodelist_B的内容复制到oNodeList_A在VBA中合并两个XMLnodelist
Set oNodeList_A = xmldoc.getElementsByTagName("A")
Set oNodeList_B = xmldoc.getElementsByTagName("B")
人有一个想法?
这个工作对我来说:
Sub Tester()
Dim xmlDoc As New MSXML2.DOMDocument30
Dim objNodes As IXMLDOMNodeList, o As IXMLDOMElement
xmlDoc.async = False
'xmlDoc.Load "D:\Analysis\config.xml"
xmlDoc.LoadXML Range("A1").Value
xmlDoc.setProperty "SelectionLanguage", "XPath" '<< required!
If xmlDoc.parseError.errorCode <> 0 Then
MsgBox "Error!" & vbCrLf & _
" Line: " & xmlDoc.parseError.Line & vbCrLf & _
" Text:" & xmlDoc.parseError.srcText & vbCrLf & _
" Reason: " & xmlDoc.parseError.reason
Else
Set objNodes = xmlDoc.SelectNodes("root/A|root/B")
If objNodes.Length = 0 Then
Debug.Print "not found"
Else
For Each o In objNodes
Debug.Print o.tagName, o.nodeTypedValue
Next o
End If
End If
End Sub
测试XML:
<?xml version="1.0"?>
<root>
<A>ValA1</A>
<A>ValA2</A>
<B>ValB1</B>
<B>ValB2</B>
</root>
什么是最终的目的是什么?你想对这个联合清单做什么? –
你好,原因是,我有一个工具,我需要更新。该工具分析oNodeList_A中的数据(该列表的输入是一个XML文件)。更新我想要做的,以从xm文件中添加此列表中的不同数据。所以除了getElementByTagName(“A”),还有(“B”)。这就是为什么我想填充两个不同的节点列表,然后将它们合并为一个。也许你有想法做到这一点?或不同的解决方案 – Menno
@TimWilliams请参阅上面的注释 – Menno