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
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>
Salvare Books.xml nella cartella radice dell'unità C.
Aprire un nuovo progetto EXE Standard in Microsoft Visual Basic. Form1 viene creato per impostazione predefinita.
Scegliere Riferimenti dal menu Progetto e quindi selezionare la casella di controllo Microsoft XML 3.0 .
Trascinare un pulsante Di comando e rilasciarlo in Form1.
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
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.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.