文章編號: 307941 - 上次校閱: 2002年10月27日 - 版次: 1.1

如何: 使用 ms:type-本機-名稱 XPath 擴充函式 MSXML DOM Visual Basic 的 Windows 中的程式

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

結論

本文將逐步告訴您,如何使用 ms:type-本機-名稱 XPath 擴充函式來設計程式 [MSXML 4.0 文件物件模型 (DOM) 在 Visual Basic 中。

ms:type-本機-名稱 XPath 擴充函式的描述

XPath 實作在 MSXML 4.0 引入了一組可以指定運算式評估根據其資料類型的 XML 文件中的節點的 XSD 擴充函式。ms:type-本機-名稱 XPath 擴充函式可傳回節點的資料型別相關聯的 XSD 結構描述中所定義不合格名稱。

其資料型別的非限定的名稱是要傳回的節點是當做 ms:type-本機-名稱 XPath 擴充函式的輸入引數傳遞。在本文中的 [程式碼] 範例 ms:type-本機-名稱 XPath 函式用來為 DOM 樹狀結構一次由 selectNodes DOM 方法執行所周遊 Books.xml 檔案中傳回非限定的資料型別名稱,每個節點。如 selectNodes 方法 DOMDocument 物件的產生,並傳回 AuthorType 附加至 IXMLDOMNodeList 介面,就會傳回其不合格的資料型別名稱的每個節點。

建立範例 XML 文件

使用 [記事本] 來建立並儲存 XML 文件命名 Books.xml 包含下列 XML:
<?xml version="1.0"?>
<x:catalog xmlns:x="urn:books" xsi:schemaLocation='urn:books Books.xsd' 
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>      
   <book>   
      <author>Adams</author>
      <State>NC</State>
      <title>XML Developer's Guide</title>                          
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
      <description>An in-depth look at creating applications with XML.</description>      
   </book>
</x:catalog>
				
Books.xml 參考稱為定義其結構的 Books.xsd XSD 結構描述文件。

建立範例 XSD 文件

  1. 使用 「 記事本 」 建立名為包含下列程式碼的 Books.xsd XSD 結構描述文件:
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:books" xmlns:b="urn:books">
    
      <xs:element name="catalog" type="b:CatalogData"/> 
    
      <xs:complexType name="CatalogData">
        <xs:sequence>
          <xs:element name="book" type="b:bookdata" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    
      <xs:simpleType name="AuthorType">
        <xs:restriction base="xs:string">
          <xs:maxLength value="5"/>
        </xs:restriction>
      </xs:simpleType>
      
    
      <xs:complexType name="bookdata">
        <xs:sequence>
          <xs:element name="author" type="b:AuthorType"/>
          <xs:element name="State" type="xs:string"/>
          <xs:element name="title" type="xs:string"/>
          <xs:element name="genre" type="xs:string"/>
          <xs:element name="price" type="xs:float"/>
          <xs:element name="publish_date" type="xs:date"/>
          <xs:element name="description" type="xs:string"/>      
        </xs:sequence>
    
        <xs:attribute name="id" type="xs:string"/>
    
      </xs:complexType>
    
    </xs:schema>
  2. 將 Books.xsd 儲存在儲存 Books.xml 的相同資料夾中。

建立和測試 Visual Basic 專案

  1. 在 Visual Basic 6.0 中建立新的標準 EXE 專案。預設會建立 Form1。
  2. 將專案參考加入 Microsoft XML,版本 4.0
  3. 拖曳到 Form1 的 [指令按鈕]。
  4. 將下列程式碼貼在 [命令] 按鈕的 Click 事件程序,在 xmldom.Load 陳述式中指定到 Books.xml 路徑:
    Dim xmlschema As MSXML2.XMLSchemaCache40
    
    Dim xmldom As MSXML2.DOMDocument40
    Set xmldom = New MSXML2.DOMDocument40
    
    xmldom.async = False
    xmldom.setProperty "SelectionNamespaces", "xmlns:ms='urn:schemas-microsoft-com:xslt'"
    xmldom.Load "<Path to Books.xml>"
    
    Set nlist = xmldom.selectNodes("//*[ms:type-local-name(.)='AuthorType']")
    
    Dim node As MSXML2.IXMLDOMNode
    For Each node In nlist
      Debug.Print node.nodeName
    Next
    DOMDocument 物件的 selectNodes 方法指定使用 ms:type-本機-名稱 副檔名函式來識別所有使用者定義複雜 AuthorType XSD 資料型別的節點的 XPath 運算式。

  5. 儲存並執行專案。
  6. 按一下 [命令] 按鈕來執行 XPath 查詢和顯示名稱或比對節點的名稱。在 Books.xml 作者項目是其資料型別是 AuthorType 唯一節點。這個節點 (作者) 的名稱會顯示在 Visual Basic 即時運算視窗中,執行程式碼時。

?考

在 MSXML 4.0 中實作的所有 XPath 擴充函數的完整清單,請參閱 XPath 參考區段的 MSXML 4.0 軟體開發套件 (SDK) 文件中 「 Microsoft XPath 擴充函式 」 主題]。


這篇文章中的資訊適用於:
  • Microsoft XML Core Services 4.0
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 6.0 Professional Edition
關鍵字:?
kbmt kbhowto kbhowtomaster KB307941 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:307941? (http://support.microsoft.com/kb/307941/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。