Utiliser la fonction XPath contains() lorsque vous programmez le DOM MSXML
Cet article explique comment utiliser la contains() XPath
fonction lorsque vous programmez le DOM MSXML.
Version d’origine du produit : Microsoft XML
Numéro de la base de connaissances d’origine : 304265
Résumé
Lorsque vous utilisez le modèle DOM (Document Object Model) Microsoft XML (MSXML) dans le code pour charger et analyser un document XML, il est courant d’identifier les éléments et/ou les éléments avec des attributs dont les données contiennent une valeur de chaîne ou un mot spécifié. Cet article documente un exemple de code qui montre comment utiliser la fonction de chaîne XPath (XML Path Language) pour implémenter cette exigence.
Exemple pas à pas
Dans le Bloc-notes, créez un document XML nommé Books.xml, puis collez le code XML suivant :
<?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>
Enregistrez Books.xml dans le dossier racine du lecteur C.
Ouvrez un nouveau projet EXE Standard dans Microsoft Visual Basic. Form1 est créé par défaut.
Dans le menu Projet, cliquez sur Références, puis sélectionnez la zone microsoft XML 3.0 case activée.
Faites glisser un bouton Commande, puis déposez-le sur Form1.
Copiez et collez le code suivant dans la procédure événementielle Click du bouton Commande :
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
Le code précédent charge le code XML de Books.xml dans un instance de l’objet DOMDocument MSXML. Il exécute ensuite une requête XPath qui utilise la
contains XPath
fonction pour identifier tous les titres de livre qui contiennent le mot ADO. Enfin, la boucle For itère au sein des nœuds sélectionnés et affiche les titres correspondants identifiés en exécutant la requête XPath.Le premier paramètre de la
contains XPath
fonction est utilisé pour spécifier le nœud ou la chaîne source sur lequel la comparaison doit être exécutée. Le deuxième paramètre est une chaîne qui spécifie le mot ou la valeur de chaîne à rechercher dans le nœud source. Il est important de se rappeler que la chaîne ou le mot fourni en tant que deuxième paramètre de la fonction contains respecte la casse.