找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 12661|回复: 6

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

[复制链接]
发表于 2023-5-7 16:12:58 | 显示全部楼层 |阅读模式
  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/>
复制代码

评分

参与人数 1PB -12 收起 理由
老刘1号 -12 没事找事

查看全部评分

发表于 2023-5-7 18:11:14 | 显示全部楼层
  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"                                 '覆盖写入文件
复制代码
 楼主| 发表于 2023-5-7 18:24:07 | 显示全部楼层
回复 2# czjt1234


    唔 所以为什么
  1. set xml=createobject("msxml2.domdocument")
  2. set root=xml.createelement("root")
  3. xml.appendchild(root)
  4. xml.save("1.xml")
复制代码
有问题呢?
发表于 2023-5-7 18:33:42 | 显示全部楼层
要自行创建'xml声明节点
发表于 2023-5-8 15:45:42 | 显示全部楼层
回复 1# jyswjjgdwtdtj


    没问题啊,哪里有问题
最后加/相当于关闭标签了
麻烦研究清楚了xml格式再来发帖,别一天到晚这bug那bug的,bug没你yy的那么多
 楼主| 发表于 2023-5-9 21:22:16 | 显示全部楼层
回复 5# 老刘1号


    你的意思是说没有内容的xml元素作为了一个单标记的元素吗 不太了解
发表于 2023-5-10 05:55:29 | 显示全部楼层
哦,我搞错了你的意思

<root></root>

<root/>
在xml中是相同的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 00:33 , Processed in 0.010242 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表