以下示例,在代码doc.save xmlFile下一行设置断点,打开保存的xml文档看看文档的变化:Option ExplicitPrivate Sub Command1_Click()
Dim doc As DOMDocument Dim mode As IXMLDOMProcessingInstruction Dim node As IXMLDOMNode Dim root As IXMLDOMElement Dim lement As IXMLDOMElement Dim nodeData Dim i As Long Dim xmlFile As String
xmlFile = "d:\xmlTest.xml"
'创建一个只有根节点的xml文件 Set doc = New DOMDocument Set root = doc.createElement("Data") Set doc.documentElement = root Set mode = doc.createProcessingInstruction("xml", "version='1.0' encoding='gb2312'") Call doc.insertBefore(mode, doc.childNodes(0)) doc.save xmlFile '----------------------------------------------------------------------------------- '打开以上的xml文档添加节点 Set doc = New DOMDocument doc.Load xmlFile Set root = doc.documentElement nodeData = Array("HEADER", "LIMITS", "DATA1") For i = 0 To UBound(nodeData) Set lement = doc.createNode(1, nodeData(i), "") root.appendChild lement Next doc.save xmlFile '---------------------------------------------------------------------------------- '打开以上的xml文档定位添加节点 Set doc = New DOMDocument doc.Load xmlFile Set node = doc.documentElement.getElementsByTagName("LIMITS")(0) nodeData = Array(1, 2, 4) For i = 0 To UBound(nodeData) Set lement = doc.createNode(1, "BIN", "") lement.Text = nodeData(i) node.appendChild lement Next doc.save xmlFile '----------------------------------------------------------------------------------- '再打开以上的xml文档定位添加节点 Set doc = New DOMDocument doc.Load xmlFile Set node = doc.documentElement.getElementsByTagName("HEADER")(0) Set lement = doc.createNode(1, "test", "") lement.Text = 1.8 node.appendChild lement '已经存在BIN节点,再增加新的BIN节点 Set node = doc.documentElement.getElementsByTagName("LIMITS")(0) nodeData = Array(100, 2000, 40) For i = 0 To UBound(nodeData) Set lement = doc.createNode(1, "BIN", "") lement.Text = nodeData(i) node.appendChild lement Next doc.save xmlFile
能不能给段具体的代码啊,谢谢了
对XML操作不熟悉的
Dim objXmlDoc As New DOMDocument
Dim objXmlNode As IXMLDOMNode
Dim objNewElem As IXMLDOMElement
objXmlDoc.Load "e:\test.xml"
Set objNewElem = objXmlDoc.createElement("BIN") '.createNode(NODE_TEXT, "BIN", "")
objNewElem.Text = "New_Value"
Set objXmlNode = objXmlDoc.getElementsByTagName("BINSUM")(0)
objXmlNode.appendChild objNewElem
objXmlDoc.save "e:\new.xml"
一、用记事本打开你的xml文件,另存为unicode或utf-8编码格式。
二、用记事本打开你的xml文件,修改声明部分为<?xml version="1.0" encoding="gb2312"?>
即用<?xml version="1.0" encoding="gb2312"?>替换<?xml version="1.0" ?>,然后保存。原因是ansi编码格式的xml文件+缺省声明<?xml version="1.0" ?>是不支持汉字的。
要想知道你的xml文件有没有错误的简单办法是用IE打开它,如果有错,网页上会报错。<?xml version="1.0" encoding="gb2312"?>
<Data>
<HEADER>
<test>1.8</test> <!-- test这里是可以修改的,节点为固定的 -->
</HEADER>
<LIMITS>
<BIN>1</BIN> <!-- 可能有多个bin节点,只要求添加,初始时可以没有一个,只有能添加即可 -->
<BIN>4</BIN>
<BIN>3</BIN>
</LIMITS>
<DATA1>
<BINSUM>
<BIN>ds</BIN> <!-- 可能有多个bin节点,只要求添加,初始时可以没有一个,只有能添加即可 -->
<BIN>2</BIN>
<BIN>3</BIN>
</BINSUM>
</DATA1>
</Data>
Dim doc As DOMDocument
Dim mode As IXMLDOMProcessingInstruction
Dim node As IXMLDOMNode
Dim root As IXMLDOMElement
Dim lement As IXMLDOMElement
Dim nodeData
Dim i As Long
Dim xmlFile As String
xmlFile = "d:\xmlTest.xml"
'创建一个只有根节点的xml文件
Set doc = New DOMDocument
Set root = doc.createElement("Data")
Set doc.documentElement = root
Set mode = doc.createProcessingInstruction("xml", "version='1.0' encoding='gb2312'")
Call doc.insertBefore(mode, doc.childNodes(0))
doc.save xmlFile
'-----------------------------------------------------------------------------------
'打开以上的xml文档添加节点
Set doc = New DOMDocument
doc.Load xmlFile
Set root = doc.documentElement
nodeData = Array("HEADER", "LIMITS", "DATA1")
For i = 0 To UBound(nodeData)
Set lement = doc.createNode(1, nodeData(i), "")
root.appendChild lement
Next
doc.save xmlFile
'----------------------------------------------------------------------------------
'打开以上的xml文档定位添加节点
Set doc = New DOMDocument
doc.Load xmlFile
Set node = doc.documentElement.getElementsByTagName("LIMITS")(0)
nodeData = Array(1, 2, 4)
For i = 0 To UBound(nodeData)
Set lement = doc.createNode(1, "BIN", "")
lement.Text = nodeData(i)
node.appendChild lement
Next
doc.save xmlFile
'-----------------------------------------------------------------------------------
'再打开以上的xml文档定位添加节点
Set doc = New DOMDocument
doc.Load xmlFile
Set node = doc.documentElement.getElementsByTagName("HEADER")(0)
Set lement = doc.createNode(1, "test", "")
lement.Text = 1.8
node.appendChild lement
'已经存在BIN节点,再增加新的BIN节点
Set node = doc.documentElement.getElementsByTagName("LIMITS")(0)
nodeData = Array(100, 2000, 40)
For i = 0 To UBound(nodeData)
Set lement = doc.createNode(1, "BIN", "")
lement.Text = nodeData(i)
node.appendChild lement
Next
doc.save xmlFile
End Sub
-----------------------
你用文本看xml? 用IE打开就不是一行的了....