AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > VB编程

利用Visual Basic操作XML数据

51自学网 http://www.wanshiok.com



IXMLDOMNode类

   IXMLDOMNode类描述了一个节点,该类提供了一系列用于搜索和操纵XML文档的属性和方法。
selectSingleNode 方法用于搜索指定节点的后代,用于搜索指定节点路径的语言称为XPATH,XPATH非常棘手,本文就不详细说明其规范了。下面我们将介绍两个对搜索子节点有特别有用并且简单的方法。

   在给selectsingleNode方法中输入子节点的名字,该方法将在节点的子节点进行精确匹配搜索。如果在输入的字符串前面加上".//",那么将搜索节点的全部后代。

' Search for a child node named "LastName."
Set last_name_node = address_node.selectSingleNode("LastName")

' Search for any descendant named "LastName."
Set last_name_node = address_node.selectSingleNode(".//LastName")

   下面列出了IXMLDOMNode对象的部分非常有用的属性:

    attributes.节点属性集合

    nodeName.节点的标记名

    nodeTypeString.节点的类型

    ownerDocument.返回DOMDocument对象包含的节点

    text.表示节点包含的文本内容。如果该节点包含其他节点,那么text代表了所有节点的文本内容的组合。

    xml.给出了节点的xml内容,例如:"<FirstName>Rod</FirstName>".

   ChildNodes集合包含了节点的子节点。要给节点增加一个子节点,首先必须给使用DOMDocument对象的节点创建方法,然后将这个新建的节点加入到父节点的childNodes集合中。下面的代码展示了创建一个新的子节点的子程序,并使用父节点的appendChild方法将其加入到父节点中:

' Add a new node to the indicated parent node.
Private Sub CreateNode(ByVal indent As Integer, _
ByVal parent As IXMLDOMNode, ByVal node_name As String, _
ByVal node_value As String)
Dim new_node As IXMLDOMNode

' Create the new node.
Set new_node = parent.ownerDocument.createElement(node_name)

' Set the node's text value.
new_node.Text = node_value

' Add the node to the parent.
parent.appendChild new_node
End Sub

SaveValues 程序

   现在我们可以使用XML创建一个简单的程序(如图1),其值存储到XML文件中,在程序开始运行时,程序从VALUE.XML文件中加载数据,在程序运行结束时,将程序中的现行值存入VALUE.XML文件中。


   下面的代码是显示了VALUE.XML文件的结构:

<Values>
  <FirstName>Rod</FirstName>
  <LastName>Stephens</LastName>
  <Street>1234 Programmer Place</Street>
  <City>Bugsville</City>
  <State>CO</State>
  <Zip>80276</Zip>
</Values>


   List1显示了怎样编写SaveValues,当载入表单时,form_load事件触发LoadValues子程序。

   LoadValues创建了一个名为xml_document的DOMDocument对象,然后载入xml文件,使用selectSingleNode方法查找名为values的节点,然后使用GetNodeValue方法获得从value节点后代中得到的值。

   GetNodeValue使用value节点的selectSingleNode方法寻找目标节点,如果节点不存在函数将返回一个缺省值,如果找到这个节点GetNodeValue将返回该节点的text值。对于value.xml文件中的数据节点,text仅仅是包含在节点中的文本内容。

   当窗体卸载时触发form_unload事件,unload事件调用SaveValues子程序。程序创建一个新的DOMDocument对象,该对象创建一个新的名为value的节点,然后用文档的appendChild方法将节点添加到文档中。

 
 

上一篇:在Visual Basic编程中运用数据结构  下一篇:Visual Basic变量的基础学习