Condividi tramite


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

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

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

Riepilogo

Quando si usa il 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 specificati. Questo articolo documenta un esempio di codice che dimostra come si può utilizzare la funzione stringa 'contains' del linguaggio di percorsi XML (XPath) per implementare questo requisito.

Esempio dettagliato

  1. Nel Blocco note creare un nuovo documento XML denominato Books.xml e 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 dei libri che contengono la parola di 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 di origine o la stringa 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 fornita come secondo parametro della funzione contains fa distinzione tra maiuscole e minuscole.