Use a função contém() XPath quando estiver programando o MSXML DOM

Este artigo mostra como usar a contains() XPath função ao programar o MSXML DOM.

Versão original do produto: Microsoft XML
Número de KB original: 304265

Resumo

Quando você usa o DOM (Modelo de Objeto de Documento) do Microsoft XML (MSXML) em código para carregar e analisar um documento XML, é comum a prática de programação identificar elementos e/ou elementos com atributos cujos dados contêm um valor ou palavra de cadeia de caracteres especificado. Este artigo documenta um exemplo de código que demonstra como você pode usar a função de cadeia de caracteres XML Path Language (XPath) para implementar esse requisito.

Exemplo passo a passo

  1. No Bloco de Notas, crie um novo documento XML chamado Books.xmle cole o seguinte XML:

    <?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. Salve Books.xml na pasta raiz da unidade C.

  3. Abra um novo projeto STANDARD EXE no Microsoft Visual Basic. O Form1 é criado por padrão.

  4. No menu Projeto, clique em Referências e selecione a caixa marcar Microsoft XML 3.0.

  5. Arraste um botão Comando e solte-o no Form1.

  6. Copie e cole o seguinte código no procedimento de evento Clique no botão 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. O código anterior carrega o XML de Books.xml em uma instância do objeto MSXML DOMDocument. Em seguida, ele executa uma consulta XPath que usa a contains XPath função para identificar todos os títulos de Livro que contêm a palavra ADO. Por fim, o loop For itera por meio dos nós selecionados e exibe os títulos correspondentes que foram identificados executando a consulta XPath.

  8. O primeiro parâmetro da contains XPath função é usado para especificar o nó de origem ou cadeia de caracteres no qual a comparação deve ser executada. O segundo parâmetro é uma cadeia de caracteres que especifica a palavra ou o valor da cadeia de caracteres a ser buscada no nó de origem. É importante lembrar que a cadeia de caracteres ou a palavra fornecida como o segundo parâmetro da função contém é sensível a casos.