⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a beginner's guide to the xml dom.htm

📁 这是一本关于XML的学习的书
💻 HTM
📖 第 1 页 / 共 4 页
字号:
        </tr>
        <tr>
          <td width="52%" valign="TOP" height=48> 
            <p align="JUSTIFY"><b><font size="3">NODE_PROCESSING_INSTRUCTION</font></b>
          </td>
          <td width="48%" valign="TOP" height=48> 
            <p align="JUSTIFY"><b><font size="3">&lt;?xml version="1.0"?&gt;</font></b>
          </td>
        </tr>
        <tr>
          <td width="52%" valign="TOP" height=64> 
            <p align="JUSTIFY"><b><font size="3">NODE_DOCUMENT_TYPE</font></b>
          </td>
          <td width="48%" valign="TOP" height=64> 
            <p align="JUSTIFY"><b><font size="3">&lt;!DOCTYPE compactdiscs SYSTEM 
              "cds.dtd"&gt;</font></b>
          </td>
        </tr>
      </table>
      <p></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size=3>你通过</font><b><font size=3>IXMLDOMNode</font></b><font face="宋体" lang="ZH-CN" size=3>界面实现的两个属性来访问节点的类型。</font><b><font size=3>NodeType</font></b><font face="宋体" lang="ZH-CN" size=3>属性列举了</font><b><font size=3>DOMNodeType</font></b><font face="宋体" lang="ZH-CN" size=3>所有项目</font><font size=3>(</font><font face="宋体" lang="ZH-CN" size=3>一些项目列举在上面的表格上</font><font size=3>)</font><font face="宋体" lang="ZH-CN" size=3>。另外,你可以用</font><b><font size=3>NodeTypeString</font></b><font face="宋体" lang="ZH-CN" size=3>属性来获得表示节点类型的字符串。</font></p>
      <p align="JUSTIFY"> <font face="宋体" lang="ZH-CN" size=3>一旦你有了文档的</font><font size=3>DOM</font><font face="宋体" lang="ZH-CN" size=3>引用,你就可以遍历节点的层次。通过文档引用,你可以访问</font><b><font size=3>ChildNodes</font></b><font face="宋体" lang="ZH-CN" size=3>属性,它给出了一个自上而下的包含所有节点的目录。</font><b><font size=3>ChildNodes</font></b><font face="宋体" lang="ZH-CN" size=3>属性实现了</font><b><font size=3>IXMLDOMNodeList</font></b><font face="宋体" lang="ZH-CN" size=3>,它支持</font><font size=3>Visual 
        Basic</font><font face="宋体" lang="ZH-CN" size=3>的</font><font size=3>For/Each</font><font face="宋体" lang="ZH-CN" size=3>结构,所以你可以列举出</font><b><font size=3>ChildNodes</font></b><font face="宋体" lang="ZH-CN" size=3>中的所有节点。另外,</font><b><font size=3>ChildNodes</font></b><font face="宋体" lang="ZH-CN" size=3>属性还实现了</font><b><font size=3>Level</font></b><font face="宋体" lang="ZH-CN" size=3>属性,它可以返回所有子节点的数目。</font></p>
      <p align="JUSTIFY"> <font face="宋体" lang="ZH-CN" size=3>不只是文档对象有</font><b><font size=3>ChildNodes</font></b><font face="宋体" lang="ZH-CN" size=3>属性,每一个节点都有</font><b><font size=3>ChildNodes</font></b><font face="宋体" lang="ZH-CN" size=3>属性。因为如此,</font><b><font size=3>ChildNodes</font></b><font face="宋体" lang="ZH-CN" size=3>属性和</font><b><font size=3>IXMLDOMNode's 
        HasChildNodes</font></b><font face="宋体" lang="ZH-CN" size=3>属性配合,使你非常方便的遍历文档,访问元素,属性,值。</font></p>
      <p align="JUSTIFY"> <font face="宋体" lang="ZH-CN" size=3>值得一提的是,元素和元素值之间是父子关系。例如在</font><font size=3> 
        CDs XML</font><font face="宋体" lang="ZH-CN" size=3>文档中,元素</font><b><font size=3>&lt;title&gt;</font></b><font face="宋体" lang="ZH-CN" size=3>表示歌曲的名字,要知道</font><b><font size=3>&lt;title&gt;</font></b><font face="宋体" lang="ZH-CN" size=3>的值,你需要访问节点的属性</font><b><font size=3>NODE_TEXT</font></b><font face="宋体" lang="ZH-CN" size=3>。如果你发现一个节点有你感兴趣的数据,你可以访问它的属性,也可以通过</font><b><font size=3>ParentNode</font></b><font face="宋体" lang="ZH-CN" size=3>属性来访问它们的父节点。</font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size=3><a name="7"></a>如何遍历</font><font size=3>XML</font><font face="宋体" lang="ZH-CN" size=3>文档:</font></p>
      <p align="JUSTIFY"> <font face="宋体" lang="ZH-CN" size=3>你能够遍历文档的节点是利用文档对象</font><font size=3>,</font><font face="宋体" lang="ZH-CN" size=3>因为</font><font size=3>XML</font><font face="宋体" lang="ZH-CN" size=3>本身就是层次结构</font><font size=3>,</font><font face="宋体" lang="ZH-CN" size=3>所以很容易编写递归代码来访问整个文档。</font></p>
      <b></b>
      <p align="JUSTIFY"><font size=3><b>LoadDocument</b></font><font face="宋体" lang="ZH-CN" size=3>程序打开</font><font size=3>XML</font><font face="宋体" lang="ZH-CN" size=3>文档,然后调用另一个程序</font><b><font size=3>DisplayNode</font></b><font face="宋体" lang="ZH-CN" size=3>,它用来显示文档的结构。</font><b><font size=3>LoadDocument</font></b><font face="宋体" lang="ZH-CN" size=3>传递给正在打开的</font><font size=3>XML</font><font face="宋体" lang="ZH-CN" size=3>文档的</font><b><font size=3>ChildNodes</font></b><font face="宋体" lang="ZH-CN" size=3>属性一个引用作为它的参数,同时传递一个整数用来标示开始显示的层次级别。代码利用参数来格式化在</font><font size=3>Visual 
        Basic</font><font face="宋体" lang="ZH-CN" size=3>文档结构显示窗口中的文本。</font></p>
      <b></b>
      <p align="JUSTIFY"><font size=3><b>DisplayNode</b></font><font face="宋体" lang="ZH-CN" size=3>属性的函数会遍历文档寻找需要的</font><b><font size=3>NODE_TEXT</font></b><font face="宋体" lang="ZH-CN" size=3>节点类型串,一旦代码找到一个</font><b><font size=3>NODE_TEXT</font></b><font face="宋体" lang="ZH-CN" size=3>的节点,它会利用</font><b><font size=3>NodeValue</font></b><font face="宋体" lang="ZH-CN" size=3>属性来获得相应的文本串。另外,当前节点的</font><b><font size=3>ParentNode</font></b><font face="宋体" lang="ZH-CN" size=3>属性指向一个元素类型的节点。元素节点实现了一个</font><b><font size=3>NodeName</font></b><font face="宋体" lang="ZH-CN" size=3>属性,</font></p>
      <b></b>
      <p align="JUSTIFY"><font size=3><b>NodeName</b></font><font face="宋体" lang="ZH-CN" size=3>和</font><b><font size=3>NodeValue</font></b><font face="宋体" lang="ZH-CN" size=3>属性会被显示。</font></p>
      <p align="JUSTIFY"> <font face="宋体" lang="ZH-CN" size=3>如果一个节点还有子节点,通过检测</font><b><font size=3>HasChildNodes</font></b><font face="宋体" lang="ZH-CN" size=3>属性确认,</font><b><font size=3>DisplayNode</font></b><font face="宋体" lang="ZH-CN" size=3>就会调用自己知道遍历文档的全部。</font></p>
      <b></b> 
      <p align="JUSTIFY"><font size=3><b>下面这个DisplayNode</b></font><font face="宋体" lang="ZH-CN" size=3>程序用</font><b><font size=3>Debug.Print</font></b><font face="宋体" lang="ZH-CN" size=3>向</font><font size=3>Visual 
        Basic</font><font face="宋体" lang="ZH-CN" size=3>窗口写入相关信息。</font></p>
      <p align="JUSTIFY"><b><font size="3">Public Sub LoadDocument()</font></b></p>
      <p align="JUSTIFY"><b><font size="3">Dim xDoc As MSXML.DOMDocument</font></b></p>
      <p align="JUSTIFY"><b><font size="3">Set xDoc = New MSXML.DOMDocument</font></b></p>
      <p align="JUSTIFY"><b><font size="3">xDoc.validateOnParse = False</font></b></p>
      <p align="JUSTIFY"><b><font size="3">If xDoc.Load("C:\My Documents\sample.xml") 
        Then</font></b></p>
      <p align="JUSTIFY"><b><font size="3">' The document loaded successfully.</font></b></p>
      <p align="JUSTIFY"><b><font size="3">' Now do something intersting.</font></b></p>
      <p align="JUSTIFY"><b><font size="3">DisplayNode xDoc.childNodes, 0</font></b></p>
      <p align="JUSTIFY"><b><font size="3">Else</font></b></p>
      <p align="JUSTIFY"><b><font size="3">' The document failed to load.</font></b></p>
      <p align="JUSTIFY"><b><font size="3">' See the previous listing for error 
        information.</font></b></p>
      <p align="JUSTIFY"><b><font size="3">End If</font></b></p>
      <p align="JUSTIFY"><b><font size="3">End Sub</font></b></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><b><font size="3">Public Sub DisplayNode(ByRef Nodes 
        As MSXML.IXMLDOMNodeList, _</font></b></p>
      <p align="JUSTIFY"><b><font size="3">ByVal Indent As Integer)</font></b></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><b><font size="3">Dim xNode As MSXML.IXMLDOMNode</font></b></p>
      <p align="JUSTIFY"><b><font size="3">Indent = Indent + 2</font></b></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><b><font size="3">For Each xNode In Nodes</font></b></p>
      <p align="JUSTIFY"><b><font size="3">If xNode.nodeType = NODE_TEXT Then</font></b></p>
      <p align="JUSTIFY"><b><font size="3">Debug.Print Space$(Indent) &amp; xNode.parentNode.nodeName 
        &amp; _</font></b></p>
      <p align="JUSTIFY"><b><font size="3">":" &amp; xNode.nodeValue</font></b></p>
      <p align="JUSTIFY"><b><font size="3">End If</font></b></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><b><font size="3">If xNode.hasChildNodes Then</font></b></p>
      <p align="JUSTIFY"><b><font size="3">DisplayNode xNode.childNodes, Indent</font></b></p>
      <p align="JUSTIFY"><b><font size="3">End If</font></b></p>
      <p align="JUSTIFY"><b><font size="3">Next xNode</font></b></p>
      <p align="JUSTIFY"><b><font size="3">End Sub</font></b></p>
      <p align="JUSTIFY"></p>
      <b></b>
      <p align="JUSTIFY"><font size=3><b>DisplayNode</b></font><font face="宋体" lang="ZH-CN" size=3>用</font><b><font size=3>HasChildNodes</font></b><font face="宋体" lang="ZH-CN" size=3>属性来确认是否再次调用自己,你也可以用节点的</font><b><font size=3>Level</font></b><font face="宋体" lang="ZH-CN" size=3>属性,如果大于</font><font size=3>0</font><font face="宋体" lang="ZH-CN" size=3>,则有子节点。</font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3"><a name="8"></a>下一步该干什么:</font></p>
      <p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size=3>这仅仅是个开始,你现在可以更深的了解</font><font size=3>XML</font><font face="宋体" lang="ZH-CN" size=3>和</font><font size=3>Microsoft 
        </font><font face="宋体" lang="ZH-CN" size=3>解析器</font><font size=3>(Msxml.dll)</font><font face="宋体" lang="ZH-CN" size=3>。你可以作一些有趣的事例如改变某个节点的值,搜索文档,建立你自己的文档等等。访问</font><font size=3> 
        <b>MSDN</b> <b>Online XML Developer Center</b></font><font face="宋体" lang="ZH-CN" size=3>以获得更多的例子,文章和下载。</font> 
        <br>
      </p>
      <hr size="1">
      <div align="center">
        <p><br>
          <a href="../resource.htm" tppabs="http://www.xml.org.cn:8188/resource/resource.htm" target="_parent"><font size="-1"><span class="normal9">返回学习&amp;研究</span></font></a><span class="normal9"><font size="-1"><a href="../resource.htm" tppabs="http://www.xml.org.cn:8188/resource/resource.htm"> 
          </a></font></span></p>
      </div>
    </td>
  </tr>
  <tr align="center"> 
    <td><font color="#FF0033" size="-1"><span class="normal9">本站点所刊文章版权,均归本站点所有。署名作者拥有其著作权。<br>
      未经</span></font><span class="normal9"><font color="#FF0033"><a href="mailto:xmlteam@egroups.com"><font color="#6666FF" size="-1">允许</font></a></font><font color="#FF0033" size="-1">,不得随意转载,违者必究!!</font></span></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
<p ALIGN="JUSTIFY">&nbsp;</p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -