火爆图铃下载


茶余饭后>>站长学院>>XML DOM初学者指南

XML DOM初学者指南
茶余饭后 时间:2005年10月18日 来源:网络收集


  如何遍历XML文档:
  
  你能够遍历文档的节点是利用文档对象,因为XML本身就是层次结构,所以很容易编写递归代码来访问整个文档。
  
  LoadDocument程序打开XML文档,然后调用另一个程序DisplayNode,它用来显示文档的结构。LoadDocument传递给正在打开的XML文档的ChildNodes属性一个引用作为它的参数,同时传递一个整数用来标示开始显示的层次级别。代码利用参数来格式化在Visual Basic文档结构显示窗口中的文本。
  
  DisplayNode属性的函数会遍历文档寻找需要的NODE_TEXT节点类型串,一旦代码找到一个NODE_TEXT的节点,它会利用NodeValue属性来获得相应的文本串。另外,当前节点的ParentNode属性指向一个元素类型的节点。元素节点实现了一个NodeName属性,
  
   
  
  NodeName和NodeValue属性会被显示。
  
  如果一个节点还有子节点,通过检测HasChildNodes属性确认,DisplayNode就会调用自己知道遍历文档的全部。
  
   
  
  下面这个DisplayNode程序用Debug.Print向Visual Basic窗口写入相关信息。
  
  Public Sub LoadDocument()
  
  Dim xDoc As MSXML.DOMDocument
  
  Set xDoc = New MSXML.DOMDocument
  
  xDoc.validateOnParse = False
  
  If xDoc.Load("C:\My Documents\sample.xml") Then
  
  ' The document loaded successfully.
  
  ' Now do something intersting.
  
  DisplayNode xDoc.childNodes, 0
  
  Else
  
  ' The document failed to load.
  
  ' See the previous listing for error information.
  
  End If
  
  End Sub
  
  Public Sub DisplayNode(ByRef Nodes As MSXML.IXMLDOMNodeList, _
  
  ByVal Indent As Integer)
  
  Dim xNode As MSXML.IXMLDOMNode
  
  Indent = Indent + 2
  
   
  
  For Each xNode In Nodes
  
  If xNode.nodeType = NODE_TEXT Then
  
  Debug.Print Space$(Indent) & xNode.parentNode.nodeName & _
  
  ":" & xNode.nodeValue
  
  End If
  
  If xNode.hasChildNodes Then
  
  DisplayNode xNode.childNodes, Indent
  
  End If
  
  Next xNode
  
  End Sub
  
  DisplayNode用HasChildNodes属性来确认是否再次调用自己,你也可以用节点的Level属性,如果大于0,则有子节点。
  
  下一步该干什么:
  
  这仅仅是个开始,你现在可以更深的了解XML和Microsoft 解析器(Msxml.dll)。你可以作一些有趣的事例如改变某个节点的值,搜索文档,建立你自己的文档等等。访问 MSDN Online XML Developer Center以获得更多的例子,文章和下载。



本站提供的部分资源为网上搜集,只供网友学习、交流、研究之用!
Copyright © 2005-2006 茶余饭后 All Rights Reserved.