Usare la funzione XPath contains() durante la programmazione del DOM MSXML

Questo articolo illustra come usare la funzione durante la contains() XPath programmazione del DOM MSXML.

Versione originale del prodotto: Microsoft XML
Numero KB originale: 304265

Riepilogo

Quando si usa il modello DOM (Document Object Model) Microsoft XML (MSXML) nel codice per caricare e analizzare un documento XML, è prassi di programmazione comune identificare elementi e/o elementi con attributi i cui dati contengono un valore stringa o una parola specificata. Questo articolo documenta un esempio di codice che illustra come usare la funzione stringa XPath (XML Path Language) per implementare questo requisito.

Esempio dettagliato

  1. Nel Blocco note creare un nuovo documento XML denominato Books.xmle incollare il codice XML seguente:

    <?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. Salvare Books.xml nella cartella radice dell'unità C.

  3. Aprire un nuovo progetto EXE Standard in Microsoft Visual Basic. Form1 viene creato per impostazione predefinita.

  4. Scegliere Riferimenti dal menu Progetto e quindi selezionare la casella di controllo Microsoft XML 3.0 .

  5. Trascinare un pulsante Di comando e rilasciarlo in Form1.

  6. Copiare e incollare il codice seguente nella routine evento Click del pulsante Comando:

    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. Il codice precedente carica il codice XML da Books.xml in un'istanza dell'oggetto DOMDocument MSXML. Esegue quindi una query XPath che usa la contains XPath funzione per identificare tutti i titoli book che contengono la parola ADO. Infine, il ciclo For scorre i nodi selezionati e visualizza i titoli corrispondenti identificati eseguendo la query XPath.

  8. Il primo parametro della contains XPath funzione viene usato per specificare il nodo o la stringa di origine su cui eseguire il confronto. Il secondo parametro è una stringa che specifica la parola o il valore stringa da cercare nel nodo di origine. È importante ricordare che la stringa o la parola specificata come secondo parametro della funzione contains fa distinzione tra maiuscole e minuscole.