我正在阅读如下的XML文件:
Set xml1 = CreateObject("Msxml2.DOMDocument")
Set xml2 = CreateObject("Msxml2.DOMDocument")
xml2.Async = "False"
xml1.Async = "False"
xml1.Load("file1.xml")
xml2.Load("file2.xml")
Set xml1ChildNode = xml1.selectNodes("/node")
xml1ChildNode.AppendChild(xml2)
虽然我一直在接受:
错误:Object不支持此属性或方法:'xml1ChildNode.appendChild'
为什么?
答案 0 :(得分:1)
获取要从文件1追加的节点列表。
从文件2中获取要添加到的节点。
循环从文件1获取的节点列表并追加。
查看评论以获取详细信息。
Set xml1 = CreateObject("Msxml2.DOMDocument")
Set xml2 = CreateObject("Msxml2.DOMDocument")
xml1.Async = "False"
xml2.Async = "False"
xml1.load("C:\\Users\\XXXXX\\Desktop\\test\\file1.xml")
xml2.load("C:\\Users\\XXXXX\\Desktop\\test\\file2.xml")
'GET THE NODES TO APPEND FROM XML 1 ex:book
Set objNodeList = xml1.getElementsByTagName("book")
'GET THE NODES TO WHICH YOU WANT TO APPEND IN XML 2 ex:catalog
Set ObjectRecord = xml2.getElementsByTagName("catalog")
'LOOP THE NODES AND APPEND
For Each objNode in objNodeList
'APPEND TO WHATEVER ELEMENT YOU WANT in xml 2 ex: first catalog element in XML 2
ObjectRecord(0).appendChild objNode
Next
'CHECK YOUR OUTPUT
xml2.Save "C:\\Users\\XXXXX\\Desktop\\test\\file3.xml"
答案 1 :(得分:0)
一对夫妇更新
selectNodes返回一组节点,因此您必须遍历它。使用selectSingleNode只能获得一个。
appendChild从父级(xml2.DocumentElement或类似名称)开始,以及要添加到其中的内容。
这是更新后的代码
Set xml1 = CreateObject("Msxml2.DOMDocument")
Set xml2 = CreateObject("Msxml2.DOMDocument")
xml2.Async = "False"
xml1.Async = "False"
xml1.Load("file1.xml")
xml2.Load("file2.xml")
For Each ndNode In xml1.selectNodes( "//node" )
xml2.DocumentElement.appendChild( ndNode )
Next
WScript.Echo xml2.xml