當您在設計 MSXML DOM 時,請使用 contains() XPath 函式

本文說明如何在設計 MSXML DOM 時使用 contains() XPath 函式。

原始產品版本: Microsoft XML
原始 KB 編號: 304265

摘要

當您在程式代碼中使用 Microsoft XML (MSXML) 檔案物件模型 (DOM)來載入和剖析 XML 檔案時,常見的程式設計做法是使用數據包含指定字串值或單字的屬性來識別元素和/或元素。 本文記載程式代碼範例,示範如何使用 包含 XML 路徑語言 (XPath) 字串函式來實作這項需求。

逐步示範

  1. 在記事本中,建立名為 Books.xml 的新 XML 檔,並貼上下列 XML:

    <?xml version="1.0"?>
    <!-- This file represents a fragment of a bookstore inventory database -->
    <bookstore specialty="novel">
     <book>
         <Title>Beginning XML</Title>
         <Publisher>Wrox</Publisher>
     </book>
     <book>
         <Title>Professional XML</Title>
         <Publisher>Wrox</Publisher>
     </book>
     <book>
         <Title>Programming ADO</Title>
         <author>
             <first-name>Mary</first-name>
             <last-name>Bob</last-name>
         </author>
         <datePublished>1/1/2000</datePublished>
         <Publisher>Microsoft Press</Publisher>
     </book>
    </bookstore>
    
  2. 將Books.xml儲存在磁碟驅動器 C 的根資料夾中。

  3. 在 Visual Basic Microsoft中開啟新的 Standard EXE 專案。 預設會建立 Form1

  4. 從 [專案] 功能表中,按兩下 [ 參考],然後選取 [Microsoft XML 3.0 ] 複選框。

  5. 拖曳 [命令] 按鈕,並將它拖放到 Form1

  6. 在命令按鈕的 Click 事件程序中貼上下列程式碼:

    Dim doc As MSXML2.DOMDocument
    Dim nlist As MSXML2.IXMLDOMNodeList
    Dim node As MSXML2.IXMLDOMNode
    
    Set doc = New MSXML2.DOMDocument
    doc.setProperty "SelectionLanguage", "XPath"
    doc.Load "c:\books.xml"
    Set nlist = doc.selectNodes("//book/Title[contains(.,'ADO')]")
    MsgBox "Matching Nodes : " & nlist.length
    
    For Each node In nlist
        Debug.Print node.nodeName & " : " & node.Text
    Next
    
  7. 上述程式代碼會將 XML 從 Books.xml 載入 MSXML DOMDocument 物件的實例。 然後,它會執行 XPath 查詢,該查詢會使用 函 contains XPath 式來識別包含 ADO 一詞的所有 Book 標題。 最後,For 迴圈會逐一查看選取的節點,並顯示執行 XPath 查詢所識別的相符標題。

  8. 函式的第一個參數 contains XPath 是用來指定要執行比較的來源節點或字串。 第二個參數是字串,指定要在來源節點中尋找的字組或字串值。 請務必記住,提供做為 contains 函式第二個參數的字串或單字會區分大小寫。