Usare la funzione XPath starts-with()

Questo articolo descrive come usare la starts-with() funzione XPath.

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

Riepilogo

Si tratta di un requisito di programmazione comune quando si carica e si analizza un documento XML usando il DOM (Document Object Model) Microsoft XML (MSXML) per identificare gli elementi e/o gli elementi con attributi i cui valori iniziano con un carattere o una sequenza di caratteri specifici. Questo articolo include un esempio di codice che illustra come usare la starts-with 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 style="autobiography">
            <author>
                <first-name>Joe</first-name>
                <last-name>Bob</last-name>
                <award>Trenton Literary Review Honorable Mention</award>
            </author>
            <price>12</price>
        </book>
        <book style="textbook">
            <author>
                <first-name>Mary</first-name>
                <last-name>Bob</last-name>
                <publication>Selected Short Stories of
                    <first-name>Mary</first-name>
                    <last-name>Bob</last-name>
                </publication>
            </author>
            <price>55</price>
        </book>
    </bookstore>
    
  2. Salvare Books.xml nella cartella radice dell'unità C.

  3. Aprire un nuovo progetto EXE Standard in 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 Click routine evento 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/author/first-name[starts-with(.,'M')]")
    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 MSXML DOMDocument . Esegue quindi una query XPath che usa la starts-with funzione XPath per identificare tutti gli autori i cui nomi iniziano con la lettera M. Infine, il ciclo For scorre i nodi selezionati e visualizza i nomi degli elementi autore corrispondenti.

  8. Il primo parametro della starts-with funzione XPath viene usato per specificare il nodo o la stringa di origine su cui eseguire il confronto. Il secondo parametro è la stringa del modello che specifica il carattere o la sequenza di caratteri da utilizzare nel confronto. È importante ricordare che la stringa del modello fornita come secondo parametro della starts-with funzione fa distinzione tra maiuscole e minuscole.