Use la función contains() XPath al programar el DOM de MSXML.
En este artículo se muestra cómo usar la contains() XPath
función al programar el DOM de MSXML.
Versión original del producto: Microsoft XML
Número de KB original: 304265
Resumen
Cuando se usa el modelo de objetos de documento (DOM) de Microsoft XML (MSXML) en el código para cargar y analizar un documento XML, es habitual la práctica de programación identificar elementos o elementos con atributos cuyos datos contienen un valor de cadena o una palabra especificados. En este artículo se documenta un ejemplo de código que muestra cómo puede usar la función de cadena contains XML Path Language (XPath) para implementar este requisito.
Ejemplo paso a paso
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> <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>
Guarde Books.xml en la carpeta raíz de la unidad C.
Abra un nuevo proyecto EXE estándar en Microsoft Visual Basic. Form1 se crea de forma predeterminada.
En el menú Proyecto, haga clic en Referencias y, a continuación, active la casilla Microsoft XML 3.0 .
Arrastre un botón Comando y colóquelo en Form1.
Copie y pegue el código siguiente en el procedimiento de evento Click 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/Title[contains(.,'ADO')]") MsgBox "Matching Nodes : " & nlist.length For Each node In nlist Debug.Print node.nodeName & " : " & node.Text Next
El código anterior carga el XML de Books.xml en una instancia del objeto DOMDocument de MSXML. A continuación, ejecuta una consulta XPath que usa la
contains XPath
función para identificar todos los títulos book que contienen la palabra ADO. Por último, el bucle For recorre en iteración los nodos seleccionados y muestra los títulos coincidentes que se identificaron mediante la ejecución de la consulta XPath.El primer parámetro de la
contains XPath
función 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 una cadena que especifica el valor de palabra o cadena que se va a buscar en el nodo de origen. Es importante recordar que la cadena o la palabra que se proporciona como segundo parámetro de la función contains distingue mayúsculas de minúsculas.