Expressões XPath Básicas
As expressões XPath são usadas em orquestrações e definições de esquema de arquivo simples quando você precisa identificar um ou mais nós em uma mensagem ou variável para acessar dados ou determinar se uma condição foi atendida.
XPath é um padrão XML que define uma gramática para identificar nós ou conjuntos de nós (chamados de conjuntos de nós) em documentos XML.
É possível editar as expressões XPath padrão, geradas nas seguintes áreas de janela:
- Nas áreas de janela Configurar das atividadesPara Cada e Atividade Split, uma expressão XPath é gerada para definir o elemento recorrente. É possível editar a expressão XPath padrão exibida no campo Nome de Elemento.
- Nas áreas de janela Configurar das atividades Loop While e If..Then, uma expressão XPath é gerada no Construtor de Expressões para definir as condições. É possível editar a expressão XPath padrão exibida clicando em Avançado.
O XPath 2.0 é suportado.
Selecionando Nós por Caminho
O XPath descreve o local de elementos e atributos XML como um caminho similar para URLs ou diretórios em seu sistema de arquivos local. Cada elemento ou atributo é um nó em uma árvore que inicia com o nó-raiz. O nó-raiz contém a árvore inteira, portanto, qualquer nó na árvore pode ser localizado seguindo um caminho para baixo nas ramificações.
A sintaxe básica é:
/root-node/child-node/.../final-element-node/root-node/child-node/.../final-element-node/@attribute-node
Você determina esse caminho a partir do Esquema XML que descreve as mensagens.
O XPath usa o símbolo @ como uma abreviatura para identificar os atributos. Os caminhos sem @, ou o prefixo attribute::, identificam os elementos por padrão. Por exemplo:
/PackingSlip/PONumber/Itemidentifica o elemento Item localizado dentro de PONumber no nó-raiz PackingSlip.
Nomes de Nó e Namespaces de XML
Os nomes de nós também podem aparecer com namespaces, tal como tns:OrderNumber ou *:Item. A parte do nome até os dois pontos é um prefixo que identifica um namespace e os dois pontos são o delimitador entre o namespace e o nome local do nó.
Os espaços de nomes são um padrão XML usado para identificar exclusivamente elementos ou atributos quando os documentos compartilham conteúdo de vários esquemas. O Cast Iron Studio designa e gerencia automaticamente namespaces para os Esquemas XML usados nos documentos de configuração.
Selecionar Nós Condicionalmente com Predicados
Ocasionalmente, você pode desejar selecionar um nó apenas se alguma condição for atendida. Essas condições de seleção são conhecidas como predicados.
Você define os predicados entre colchetes, tais como:
/PV1/PatientDepartment[text()='Nursery']Esta expressão seleciona o nó PatientDepartment apenas se os dados no nó forem Nursery.
/Order/OrderDetail/Item[5]Esta expressão seleciona o quinto nó de Item em OrderDetail.
Operadores Válidos para Condições
As expressões XPath também podem ser condições booleanas que são avaliadas como true ou false. Essas expressões podem ser usadas para selecionar nós específicos ou simplesmente para identificar uma condição que deve ser atendida. É possível usar o Construtor de Expressões para ajudar a definir condições. Os operadores XPath que podem aparecer nas expressões incluem:
- = igual
- != diferente
- < menor que
- > maior que
- <= menor que ou igual a
- >= maior que ou igual a
Funções nas Expressões XPath
- concat()
- é possível combinar qualquer número de sequências e os dados dos nós
na ordem que você especifica os parâmetros. É possível especificar caminhos XPath como parâmetros. Especifique cadeias de texto constante entre aspas. Por exemplo:
concat('New Order # ',/Orders/Order/OrdNumber)
- count()
- é possível contar o número de nós no parâmetro especificado.
Geralmente, o
parâmetro é uma expressão de caminho XPath que identifica vários
nós, como todos os nós Item que são filhos de PODetail.
Por exemplo:
count(/Orders/Order)
- normalize-space()
- corta todos os caracteres de espaço à esquerda e à direita do
parâmetro de entrada e também normaliza todo espaço na entrada com
caracteres de espaço único e feeds de linha única. Por exemplo:
normalize-space(/Job/Address/Line1)
- number()
- converte o parâmetro em um tipo de dados de número. Essa função pode ser usada para garantir que as sequências sejam tratadas como números. Por exemplo:
number(/PurchaseOrder/POTotal)
- string()
- converte o parâmetro em um tipo de dados de sequência. Esta função pode ser usada para assegurar
que os nós numéricos ou de data sejam tratados como cadeias.
Por exemplo:
string(/PurchaseOrder/VendorID)
- translate()
- substitui caracteres individuais por outros caracteres no primeiro parâmetro especificado. O segundo parâmetro são o caractere ou caracteres a serem substituídos e o terceiro parâmetro são os caracteres de substituição. Esta função poderá ser útil para assegurar que as chaves de tarefa sejam todas em maiúsculas, por exemplo.
translate(/Issue/ShortDescr,
'abcdefghijklmnopqrstuvwxyz',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
Para uma lista completa de funções XPath, consulte a Especificação XPath ( http://www.w3.org/TR/xpath).
Testando Expressões XPath
É possível testar suas Expressões XPath com relação a dados de teste XML usando o Avaliador de XPath.