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:

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:

/root-node/child-node/.../final-element-node

/root-node/child-node/.../final-element-node/@attribute-node

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/Item

identifica 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. WebSphere Cast Iron Studio asigna y gestiona automáticamente nombres de espacio a los esquemas XML utilizados en documentos de configuración.  

Nota: Cada esquema de una definición de WSDL puede ser definido por un espacio de nombres

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:

Funciones en expresiones XPath

XPath también contiene funciones que permiten manipular datos de nodos. Esto puede resultar especialmente útil al crear líneas de asunto que contengan parte del texto constante más datos dinámicos de mensajes. Las funciones de XPath también se pueden utilizar para manejar requisitos tales como recortar espacios o garantizar que una clave de trabajo sea un tipo de datos de serie. Algunas de las funciones de XPath más comunes incluyen:
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)

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.