Partager via


Utilisez la fonction XPath contains() lorsque vous programmez le DOM de MSXML.

Cet article montre comment utiliser la fonction contains() XPath lors de la programmation du MSXML DOM.

Version du produit d’origine : Microsoft XML
Numéro de base de connaissances d’origine : 304265

Résumé

Lorsque vous utilisez le DOM (Document Object Model) Microsoft XML (MSXML) dans le code pour charger et analyser un document XML, il est courant de rechercher des éléments et/ou des éléments avec des attributs dont les données contiennent une chaîne de caractères spécifiée ou un mot. Cet article documente un exemple de code qui démontre comment vous pouvez utiliser la fonction de chaîne 'contains' du langage de chemin XML (XPath) pour répondre à cette exigence.

Exemple étape par étape

  1. Dans le Bloc-notes, créez un nouveau document XML nommé Books.xml, puis collez le 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>
    
  2. Enregistrez Books.xml dans le dossier racine du lecteur C.

  3. Ouvrez un nouveau projet EXE Standard dans Microsoft Visual Basic. Form1 est créé par défaut.

  4. Dans le menu Projet, cliquez sur Références, puis cochez la case Microsoft XML 3.0.

  5. Faites glisser un bouton Commande et déposez-le sur Form1.

  6. 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
    
  7. Le code précédent charge le XML depuis Books.xml dans une instance de l'objet MSXML DOMDocument. Step 2: Ensuite, il exécute une requête XPath qui utilise la fonction contains XPath pour identifier tous les titres de livres contenant le mot ADO. Enfin, la boucle For itère sur les nœuds sélectionnés et affiche les titres correspondants identifiés en exécutant la requête XPath.

  8. Le premier paramètre de la fonction contains XPath est utilisé pour spécifier le nœud source ou la chaîne contre lequel la comparaison doit être effectué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" est sensible à la casse.