Expresiones XPath básicas
Las expresiones XPath se utilizan en orquestaciones y en definiciones de esquema de archivo sin formato cuando se necesita identificar uno o varios nodos en un mensaje o variable a fin de acceder a datos o determinar si se ha cumplido una condición.
XPath es un estándar XML que define una gramática que sirve para identificar nodos o conjuntos de nodos en documentos XML.
Puede editar las expresiones XPath predeterminadas que se generan en los siguientes paneles:
- En los paneles Configurar de las actividades Para cada y Actividad Partir, se genera una expresión XPath para definir el elemento recurrente. Puede editar la expresión XPath predeterminada visualizada en el campo Nombre de elemento.
- En los paneles Configurar de las actividades Bucle while e If..Then se genera una expresión XPath en el Creador de expresiones para definir las condiciones. Puede editar la expresión XPath predeterminada que se visualiza pulsando Avanzado.
Se admite XPath 2.0.
Selección de nodos por vía de acceso
XPath describe la ubicación de elementos XML y atributos como una vía de acceso parecida a los URL o directorios de su sistema de archivos local. Cada elemento o atributo es un nodo en un árbol que empieza por el nodo raíz. El nodo raíz contiene todo el árbol, por lo que se puede buscar cualquier nodo del árbol siguiente una vía de acceso hacia las ramificaciones.
La sintaxis básica es:
/nodo-raíz/nodo-hijo/.../nodo-elemento-final/nodo-raíz/nodo-hijo/.../nodo-elemento-final/@nodo-atributo
Determine esta vía de acceso desde el esquema XML que describe los mensajes.
XPath utiliza el símbolo @ como abreviatura para identificar atributos. Las vías de acceso sin @ o el prefijo attribute:: identifican elementos de forma predeterminada. Por ejemplo:
/PackingSlip/PONumber/Itemidentifica el elemento "Item" (elemento) que se encuentra dentro de PONumber en el nodo raíz PackingSlip.
Nombres de nodo y espacios de nombre XML
Los nombres de nodo también puede aparecen con espacios de nombre, como tns:OrderNumber o *:Item. La parte del nombre hasta los dos puntos es un prefijo que identifica un espacio de nombres y los dos puntos constituyen un delimitador entre el espacio de nombres y el nombre local del nodo.
Los espacios de nombre son un estándar XML que sólo se utilizan para identificar elementos o atributos cuando los documentos comparten contenido de varios esquemas. Cast Iron Studio asigna y gestiona automáticamente nombres de espacio a los esquemas XML utilizados en los documentos de configuración.
Selección condicional de nodos con predicados
Es posible que alguna vez necesite seleccionar un nodo pero únicamente si se cumple una condición. Estas condiciones de selección se conocen como predicados.
Defina predicados dentro de delimitadores, como:
/PV1/PatientDepartment[text()='Nursery']Esta expresión sólo selecciona el nodo PatientDepartment si los datos del nodo son Nursery.
/Order/OrderDetail/Item[5]Esta expresión selecciona el quinto nodo Item (elemento) dentro de OrderDetail.
Operadores válidos para condiciones
Las expresiones XPath también pueden ser condiciones booleanas que se evalúen como true (verdadera) o false (falsa). Estas expresiones se pueden utilizar para seleccionar nodos específicos o simplemente para identificar una condición que debe cumplirse. Puede utilizar el Creador de expresiones para que le ayude a definir condiciones. Los operadores de XPath que pueden aparecer en las expresiones incluyen:
- = es igual
- != no es igual
- < inferior que
- > mayor que
- <= inferior o igual que
- >= mayor o igual que
Funciones en expresiones XPath
- concat()
- Permite combinar cualquier número de series y los datos de nodos a fin de poder especificar los parámetros. Puede especificar vías de acceso de XPath como parámetros. Especifique series de texto constante entre comillas. Por ejemplo:
concat('New Order # ',/Orders/Order/OrdNumber)
- count()
- Permite contar el número de nodos en el parámetro que especifique.
Normalmente el parámetro es una vía de acceso de XPath que identifica muchos nodos, tales como todos los nodos Item (elemento) que son hijos de PODetail.
Por ejemplo:
count(/Orders/Order)
- normalize-space()
- Recorta todos los caracteres de espacio iniciales y finales del parámetro de entrada y también normaliza todo el espacio de la entrada en caracteres de espacio únicos y saltos de línea únicos. Por ejemplo:
normalize-space(/Job/Address/Line1)
- number()
- convierte el parámetro en un tipo de datos numérico. Esta función se puede utilizar para garantizar que las series se traten como números. Por ejemplo:
number(/PurchaseOrder/POTotal)
- string()
- Convierte el parámetro en un tipo de datos de serie. Esta función se puede utilizar para garantizar que los nodos numéricos o de fecha se traten como series.
Por ejemplo:
string(/PurchaseOrder/VendorID)
- translate()
- Sustituye los caracteres individuales por otros caracteres en el primer parámetro que especifique. El segundo parámetro es el carácter o caracteres que deben sustituirse y el tercer parámetro son los caracteres de sustitución. Esta función puede resultar útil para garantizar que las claves de trabajo estén todas en mayúsculas, por ejemplo
translate(/Issue/ShortDescr,
'abcdefghijklmnopqrstuvwxyz',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
Para obtener una lista completa de las funciones de XPath, consulte la Especificación XPath (http://www.w3.org/TR/xpath).
Prueba de expresiones XPath
Puede probar sus expresiones XPath frente a datos de prueba XML utilizando el evaluador de XPath.