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
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>
Salve Books.xml na pasta raiz da unidade C.
Abra um novo projeto STANDARD EXE no Microsoft Visual Basic. O Form1 é criado por padrão.
No menu Projeto, clique em Referências e selecione a caixa marcar Microsoft XML 3.0.
Arraste um botão Comando e solte-o no Form1.
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
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.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.