Función XMLFILTRO

Categoría: Web

¿Qué hace la función XMLFILTRO?

La función XMLFILTRO devuelve datos específicos del contenido XML usando la expresión XPath especificada.

Disponibilidad

  • Excel 365: Si
  • Excel 2019: Si
  • Excel 2016: Si
  • Excel 2013: Si
  • Excel 2010: No
  • Excel 2007: No
  • Excel 2003: No

Sintaxis

XMLFILTRO(Xml, Rutax)
Función XMLFILTRO en Excel
ArgumentoObligatorioDescripción
XmlSiEs una cadena con un formato XML válido.
RutaxSiEs una cadena con un formato XPath estándar.

Observaciones importantes sobre la función XMLFILTRO:

  • Si el argumento Xml no es válido, devolverá el error #¡VALOR!
  • Si el argumento Xml contiene un espacio de nombres con un prefijo que no es válido, se devolverá el error #¡VALOR!

Nombre en otros idiomas

Ejemplo de la función XMLFILTRO

La función XMLFILTRO nos devuelve datos específicos de un texto en formato XML y eso la convierte en una función ideal para usarse en conjunto con la función SERVICIOWEB.

Esta función requiere de dos argumentos, el primero son los datos en formato XML y el segundo es la consulta que haremos a los datos y que es conocida como el XPath.

El XPath es la ruta que ayudará a la función XMLFILTRO a identificar la ubicación del dato que queremos extraer.

Por ejemplo, supongamos que tenemos los siguientes datos en formato XML:

<respuesta><distancia>373.12</distancia></respuesta>

El XPath que debemos usar para obtener el elemento distancia es el siguiente:

//respuesta/distancia

En la siguiente imagen se muestra el resultado de la función XMLFILTRO sobre los datos XML anteriores:

Ejemplo de la función XMLFILTRO en Excel

Ahora analizaremos la situación cuando los datos XML tienen más de un elemento hijo, en cuyo caso podremos indicar el índice de nuestro interés encerrado en corchetes [ ].

En el siguiente ejemplo, los datos XML se encuentran en la celda A1 donde se observa que el elemento lista tiene 3 elementos resultado.

Datos XML para la función XMLFILTRO

Para obtener el simbolo del primer elemento resultado, debemos usar el siguiente XPath:

//lista/resultado[1]/símbolo

El índice [1] le indicará a la función XMLFILTRO que devuelva la información del primer elemento resultado. En la siguiente imagen puedes observar el valor devuelto por la funcón en la celda D2:

Obtener un elemento específico con la función XMLFILTRO

Si por el contrario, no usamos un índice para indicar el elemento que necesitamos, entonces Excel devolverá todos los elementos disponibles tal como se observa en la siguiente imagen:

Ejemplo de la función XMLFILTRO como una fórmula matricial

Considera que, si tienes una versión reciente de Excel (Microsoft 365), será suficiente con ingresar la fórmula anterior en cualquier celda de la hoja y pulsar la tecla Enter.

=XMLFILTRO(A1,"//lista/resultado/simbolo")

Por el contrario, si tienes una versión previa de Excel, la fórmula anterior deberá ingresarse como una fórmula matricial, lo cual implica seleccionar previamente el rango de salida e ingresar la fórmula con la combinación de teclas Ctrl+Alt+Enter.

Finalmente mostraré como obtener un atributo con la función XMLFILTRO. Considera los siguientes datos, donde el elemento libro tiene el atributo id:

Cómo extraer información de datos XML en Excel

Para obtener el atributo id del segundo elemento libro usaremos el siguiente XPath:

=XMLFILTRO(A1,"//catalogo/libro[2]/@id")

Lo importante es recordar el uso del carácter @ seguido del nombre del atributo. En la siguiente imagen se muestra el resultado de la fórmula anterior:

Cómo obtener un atributo de un elemento XML

Atículos relacionados