Uso de la función XPath starts-with()

En este artículo se describe cómo usar la starts-with() función XPath.

Versión original del producto: Microsoft XML
Número de KB original: 303516

Resumen

Es un requisito de programación común al cargar y analizar un documento XML mediante el modelo de objetos de documento (DOM) de Microsoft XML (MSXML) para identificar elementos o elementos con atributos cuyos valores comienzan por un carácter o secuencia de caracteres específico. En este artículo se incluye un ejemplo de código que muestra cómo puede usar la starts-with función de cadena lenguaje de ruta de acceso XML (XPath) para implementar este requisito.

Ejemplo paso a paso

  1. En el Bloc de notas, cree un nuevo documento XML denominado Books.xmly pegue el siguiente 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. Guarde Books.xml en la carpeta raíz de la unidad C.

  3. Abra un nuevo proyecto EXE estándar en Visual Basic. Form1 se crea de forma predeterminada.

  4. En el menú Proyecto , haga clic en Referencias y, a continuación, active la casilla Microsoft XML 3.0 .

  5. Arrastre un botón Comando y colóquelo en Form1.

  6. Copie y pegue el código siguiente en el Click procedimiento de evento del botón 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. El código anterior carga el XML de Books.xml en una instancia del objeto MSXML DOMDocument . A continuación, ejecuta una consulta XPath que usa la starts-with función XPath para identificar a todos los autores cuyos nombres comienzan por la letra M. Por último, el bucle For recorre en iteración los nodos seleccionados y muestra los nombres de los elementos de autor coincidentes.

  8. El primer parámetro de la starts-with función XPath se usa para especificar el nodo o cadena de origen en el que se va a ejecutar la comparación. El segundo parámetro es la cadena de patrón que especifica el carácter o la secuencia de caracteres que se va a usar en la comparación. Es importante recordar que la cadena de patrón que se proporciona como segundo parámetro de la starts-with función distingue mayúsculas de minúsculas.