Board logo

标题: [问题求助] VBS脚本msxml2.domdocument生成的xml不完整? [打印本页]

作者: jyswjjgdwtdtj    时间: 2023-5-7 16:12     标题: VBS脚本msxml2.domdocument生成的xml不完整?

  1. set xml=createobject("msxml2.domdocument")
  2. set root=xml.createelement("root")
  3. xml.appendchild(root)
  4. xml.save("1.xml")
复制代码
得到1.xml:
  1. <root/>
复制代码

作者: czjt1234    时间: 2023-5-7 18:11

  1. '示例:新建节点,新建xml文件
  2. Option Explicit
  3. Dim oDOMDocument, oXMLDOMElement, oXMLDOMNode, oNode
  4. Set oDOMDocument = CreateObject("Msxml2.DOMDocument")
  5. Set oNode = oDOMDocument.createProcessingInstruction("xml", "version='1.0' encoding='GB2312'")
  6. oDOMDocument.appendChild oNode                               'xml声明节点,必须在第一行
  7. Set oNode = oDOMDocument.createProcessingInstruction("xml-css", "type=""text/css"" href=""t.css""")
  8. oDOMDocument.appendChild oNode                               '其它声明节点,可选
  9. Set oNode = oDOMDocument.createComment("注释行")             '注释节点,可选
  10. oDOMDocument.appendChild oNode
  11. Set oXMLDOMElement = oDOMDocument.createElement("note")      '根节点,必需
  12. oDOMDocument.appendChild oXMLDOMElement
  13. Set oNode = oDOMDocument.createNode(1, "n1", "")             '元素节点n1,NODE_ELEMENT = 1
  14. oNode.text = "<>&'"""                                        'n1节点的文本。注意转义字符
  15. Set oXMLDOMNode = oDOMDocument.createAttribute("a1")         'n1节点的属性
  16. oXMLDOMNode.value = "20147578"
  17. oNode.setAttributeNode oXMLDOMNode
  18. Set oXMLDOMNode = oDOMDocument.createNode(1, "c1", "")       'n1节点的子节点c1
  19. oNode.appendChild oXMLDOMNode
  20. Set oXMLDOMNode = oDOMDocument.createNode(1, "c1", "")       '同名子节点。必须重新创建
  21. oNode.appendChild oXMLDOMNode
  22. oXMLDOMElement.appendChild oNode                             '根节点的子节点n1
  23. Set oNode = oDOMDocument.createNode(1, "n2", "")             '根节点的子节点n2
  24. oXMLDOMElement.appendChild oNode
  25. Set oNode = oDOMDocument.createNode(1, "n3", "")             '根节点的子节点n3
  26. oXMLDOMElement.appendChild oNode
  27. Set oNode = oDOMDocument.createTextNode("QQ20147578")        '文本节点
  28. oXMLDOMElement.appendChild oNode
  29. Set oNode = oDOMDocument.createEntityReference("lt")         '实体引用节点,就是字符串&lt;
  30. oXMLDOMElement.appendChild oNode
  31. Set oNode = oDOMDocument.createCDATASection("<>&'""")        '非转义文本节点
  32. oXMLDOMElement.appendChild oNode
  33. MsgBox oDOMDocument.xml                                      '这里没有encoding,但写入文件后有encoding
  34. oDOMDocument.save "D:\1.xml"                                 '覆盖写入文件
复制代码

作者: jyswjjgdwtdtj    时间: 2023-5-7 18:24

回复 2# czjt1234


    唔 所以为什么
  1. set xml=createobject("msxml2.domdocument")
  2. set root=xml.createelement("root")
  3. xml.appendchild(root)
  4. xml.save("1.xml")
复制代码
有问题呢?
作者: czjt1234    时间: 2023-5-7 18:33

要自行创建'xml声明节点
作者: 老刘1号    时间: 2023-5-8 15:45

回复 1# jyswjjgdwtdtj


    没问题啊,哪里有问题
最后加/相当于关闭标签了
麻烦研究清楚了xml格式再来发帖,别一天到晚这bug那bug的,bug没你yy的那么多
作者: jyswjjgdwtdtj    时间: 2023-5-9 21:22

回复 5# 老刘1号


    你的意思是说没有内容的xml元素作为了一个单标记的元素吗 不太了解
作者: czjt1234    时间: 2023-5-10 05:55

哦,我搞错了你的意思

<root></root>

<root/>
在xml中是相同的




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2