前两天在论坛上发了一个关于VB操作XML的示例程序,今天把这段程序移到blog里,方便大家交流。
关于DOC对象就不做描述了,这个东西网上很多,到处都可以搜到,这里我们只关心它的应用。
要想操作XML文档,首先我们得建立一个XML文档。当然,各位在写软件的时候不可能在用户手册里注明:请您使用DreamWaver或任何文本编辑器按指定格式创建一个备用的XML文档!!显然这是不科学的。所以我们从第一步入手:
重要提示:XML对大小写敏感!
如何创建XML文档
首先给出例子吧,如果你准备搞懂原理就继续看下去,如果只是想找段可运行的源码,那么直接拷贝过去就可以了
Dim xmlDOMDocument As DOMDocument '相当于XML文档
Dim Root_Node As IXMLDOMElement '根节点
Dim Added_Node As IXMLDOMNode '准备添加的子节点
Dim Added_Nodes As IXMLDOMNode '准备添加的子节点
Dim Added_Attribute As IXMLDOMNode '节点的属性
'创建一个DOC对象
Set xmlDOMDocument = New DOMDocument
'创建一个根节点
Set Root_Node = xmlDOMDocument.createElement("Root")
Set xmlDOMDocument.documentElement = Root_Node
'在根节点上添加多个属性
Call Root_Node.setAttribute("属性名", "属性内容文本")
Call Root_Node.setAttribute("属性名", "属性内容文本")
Call Root_Node.setAttribute("属性名", "属性内容文本")
'在根节点下创建一个子节点“Nodes”,在Nodes节点中将包含三个子节点
Set Added_Nodes = xmlDOMDocument.CreateNode(NODE_ELEMENT, "Nodes", "")
Added_Nodes.Text = ""
Root_Node.appendChild Added_Nodes
''''''''''''''''''''''在“Nodes”节点下创建三个子节点'''''''''''''''''''''''''
Set Added_Node = xmlDOMDocument.CreateNode(NODE_ELEMENT, "Node_1", "") '
Added_Node.Text = "this Is Node_2.Text" '
Added_Element.appendChild Added_Node '
'
Set Added_Node = xmlDOMDocument.CreateNode(NODE_ELEMENT, "Node_2", "") '
Added_Node.Text = "this is Node_3.Text" '
Added_Element.appendChild Added_Node '
'
Set Added_Node = xmlDOMDocument.CreateNode(NODE_ELEMENT, "Node_3", "") '
Added_Node.Text = "this is Node_4.Text" '
Added_Element.appendChild Added_Node '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'创建序言部分
Dim pi As IXMLDOMProcessingInstruction
Set pi = xmlDOMDocument.createProcessingInstruction("xml", "version='1.0' encoding='gb2312'")
Call xmlDOMDocument.insertBefore(pi, xmlDOMDocument.childNodes(0))
'保存文档为指定的文件名
xmlDOMDocument.save m_AppPath & "myTest.xml"
下面就对源码简单的讲解一下吧:
1、声明部分
Dim xmlDOMDocument As DOMDocument:声明一个XML文档,我理解为将XML文档读入内存
Dim Root_Node As IXMLDOMElement :将Root_Node声明为节点,注意该类型和IXMLDOMNode类型的区别,IXMLDOMNode不支持添加属性,我试验过,如果只是单纯的创建一个节点,这俩个类型没有什么区别,此处还请高手指点,我对节点、元素的概念区分的不是很好。
其余的声明我想大家应该很清楚了吧。
2、创建节点
这里关键用到两个方法,一个是CreateNode,另外一个是AppendChild。可以看出,利用Set和文档变量的CreateNode将一个IXMLDOMNode型变量实例化以后,再调用另一个节点的AppendChild方法就可以把刚才实例化的节点添加成已有节点的子节点了
3、创建序言部分
这部分其实就是死格式,记好就行了
如果你想深入学习XML,确实还有很多路要走的,我给出的这些例子只是停留在应用层面,非常肤浅,体现在什么方面的?特别是调试出错的时候,有时明明是个小问题,但要废很大功夫才能找到错误,注意原因就是对DOC类的理解不足,我在这里只是希望起到抛砖引玉的作用,另外帮助大家提高开发效率。其中的不足之处还请大家指正,谢谢。
明天接着写XML的操作~~