Usar a Função XPath de início com()

Este artigo descreve como usar a starts-with() função XPath.

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

Resumo

É um requisito de programação comum quando você carrega e analisa um documento XML usando o DOM (Modelo de Objeto de Documento MSXML) do Microsoft XML para identificar elementos e/ou elementos com atributos cujos valores começam com um caractere ou sequência específico de caracteres. Este artigo inclui um exemplo de código que demonstra como você pode usar a starts-with 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 style="autobiography">
            <author>
                <first-name>Joe</first-name>
                <last-name>Bob</last-name>
                <award>Trenton Literary Review Honorable Mention</award>
            </author>
            <price>12</price>
        </book>
        <book style="textbook">
            <author>
                <first-name>Mary</first-name>
                <last-name>Bob</last-name>
                <publication>Selected Short Stories of
                    <first-name>Mary</first-name>
                    <last-name>Bob</last-name>
                </publication>
            </author>
            <price>55</price>
        </book>
    </bookstore>
    
  2. Salve Books.xml na pasta raiz da unidade C.

  3. Abra um novo projeto STANDARD EXE no 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 Click procedimento de evento do 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/author/first-name[starts-with(.,'M')]")
    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 starts-with função XPath para identificar todos os autores cujos primeiros nomes começam com a letra M. Por fim, o loop For itera por meio dos nós selecionados e exibe os primeiros nomes dos elementos de autor correspondentes.

  8. O primeiro parâmetro da starts-with função XPath é usado para especificar o nó de origem ou cadeia de caracteres em que a comparação deve ser executada. O segundo parâmetro é a cadeia de caracteres padrão que especifica o caractere ou a sequência de caracteres que deve ser usada na comparação. É importante lembrar que a cadeia de caracteres de padrão fornecida como o segundo parâmetro da função é sensível a starts-with casos.