ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 25483|回复: 23

[求助]用VB/VBA写XML

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-7-3 09:08 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:网页交互
下面是我从网上抄来的一段VB代码,运行后XML没有声明版本,即<?xml version="1.0" ?>没有添加在生成的XML文件里,所以想请问高手,添加什么语句能把<?xml version="1.0" ?>写进xml的第一行?

Private Sub SaveValues()
Dim xml_document As DOMDocument
Dim values_node As IXMLDOMNode

' Create the XML document.
Set xml_document = New DOMDocument


' Create the Values section node.
Set values_node = xml_document.createElement("Test")

' Add a new line.
values_node.appendChild xml_document.createTextNode(vbCrLf)

' Add the Values section node to the document.
xml_document.appendChild values_node

' Create nodes for the values inside the
' Values section node.
CreateNode 4, values_node, "FirstName", c
CreateNode 4, values_node, "LastName", c
CreateNode 4, values_node, "Street", c
CreateNode 4, values_node, "City", c
CreateNode 4, values_node, "State", c
CreateNode 4, values_node, "Zip", c

' Save the XML document.
xml_document.save m_AppPath & "Values.xml"
End Sub

TA的精华主题

TA的得分主题

发表于 2007-7-3 22:55 | 显示全部楼层

我记得我以前回过一个这样的帖子,不过找不到了。需要用createProcessingInstruction

类似下面的,你自己试试。

Set Version = xDoc.createProcessingInstruction("xml", "version=" & Chr(34) & "1.0" & Chr(34))

xDoc.appendChild Version

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-7-4 12:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

我还是不会,不过谢谢你。

TA的精华主题

TA的得分主题

发表于 2007-7-4 20:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

就放在前面就可以了。

Private Sub SaveValues()
Dim xml_document As DOMDocument
Dim values_node As IXMLDOMNode
Dim Version As Variant


' Create the XML document.
Set xml_document = New DOMDocument
Set Version = xml_document.createProcessingInstruction("xml", "version=" & Chr(34) & "1.0" & Chr(34))

xml_document.appendChild Version

' Create the Values section node.
Set values_node = xml_document.createElement("Test")

' Add a new line.
values_node.appendChild xml_document.createTextNode(vbCrLf)

' Add the Values section node to the document.
xml_document.appendChild values_node

' Create nodes for the values inside the
' Values section node.
'CreateNode 4, values_node, "FirstName", c
'CreateNode 4, values_node, "LastName", c
'CreateNode 4, values_node, "Street", c
'CreateNode 4, values_node, "City", c
'CreateNode 4, values_node, "State", c
'CreateNode 4, values_node, "Zip", c

' Save the XML document.
xml_document.Save m_AppPath & "Values.xml"
End Sub

TA的精华主题

TA的得分主题

发表于 2007-7-4 22:09 | 显示全部楼层
请问搂主解决了写入汉字的问题么?用程序写入xml中的汉字浏览后会成为乱码。试了很多的转换也不行。不知楼主是否已解决?

TA的精华主题

TA的得分主题

发表于 2007-7-4 23:32 | 显示全部楼层

这个应该跟编码有关系。我迟点试试写个例子看看。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-7-5 15:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

谢谢大侠,问题解决。你是怎么学会的,我为什么翻了很多书就是没学会?

TA的精华主题

TA的得分主题

发表于 2007-7-5 18:20 | 显示全部楼层
QUOTE:
以下是引用shenj1在2007-7-5 15:19:07的发言:

谢谢大侠,问题解决。你是怎么学会的,我为什么翻了很多书就是没学会?

我试了一下写中文内容到XML文件里,我这里显示XML内容是没问题的,可以正确显示中文。

学习的途径很多,我主要是看帮助文件,还有最主要的是Google。我想大部分的解决方法都能Google到。

TA的精华主题

TA的得分主题

发表于 2007-7-5 21:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
没有问题?为什么我写入中文后用浏览器打开就是乱码呢?一直在做编码转换这方面的工作,但还是没弄明白。

TA的精华主题

TA的得分主题

发表于 2007-7-5 21:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

你看看我写的这个XML文件有没有中文显示的问题。我这里是可以用浏览器看到的。我在前面加了个Encoding,其实不加也可以看得到的。

加Encoding是在下面这句里。

Set Version = xml_document.createProcessingInstruction("xml", "version=" & Chr(34) & "1.0" & Chr(34) & " encoding=""gb2312""")

2rGs0V6B.rar (222 Bytes, 下载次数: 542)


您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 22:55 , Processed in 0.045993 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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