Análise de XML
Descrição
Seção intitulada “Descrição”A etapa Análise de XML lê o XML mantido em uma coluna de uma tabela de origem e o transforma em linhas. Para cada linha de entrada, ela encontra todas as ocorrências do elemento que você indicar e emite uma linha de saída por correspondência, projetando os atributos desse elemento e os valores de suas tags filhas em colunas.
É o equivalente da ferramenta XML Parse do Alteryx. A análise é executada no mecanismo do fluxo de trabalho (os bancos de dados não conseguem analisar XML em SQL), de modo que a etapa é nativa do PlaidCloud e não tem alternativa em SQL.
Origem e opções
Seção intitulada “Origem e opções”- Tabela de origem — a tabela cujas linhas contêm o XML a ser analisado.
- Tabela de saída — a tabela em que as linhas analisadas são gravadas.
- Campo XML — a coluna que contém o texto XML.
- Elemento — o elemento cujas ocorrências se tornam, cada uma, uma linha de saída. Deixe em branco para analisar os elementos de nível superior.
- Ler o elemento como expressão XPath 1.0 — trata Elemento como uma expressão XPath 1.0
em vez de um nome, para que possa usar predicados, testes de atributo, curingas e funções como
count(),name()econtains(). Um caminho relativo começa no elemento raiz do documento. Cada item que a expressão seleciona se torna uma linha de saída. Um elemento é analisado normalmente. Qualquer outro item, como um atributo ou o resultado decount(), substitui na linha o valor de Campo XML pelo seu próprio valor; com os valores filhos ativados, um atributo selecionado recebe, em vez disso, uma coluna com o seu próprio nome. O XML é lido com entidades e acesso à rede desativados, e um documento que não está bem formado faz a etapa falhar, a menos que você ignore essas linhas. - Gerar valores de elementos filhos como colunas — para cada elemento correspondente, adiciona uma coluna por tag filha com o valor dessa filha.
- Emit each child’s outer XML — adiciona também uma coluna
<tag>_OuterXMLcom o XML serializado de cada filha (útil quando uma filha contém mais XML aninhado que você analisa em uma etapa posterior). - Ignorar linhas cujo XML não pode ser analisado — descarta uma linha de entrada cujo valor não é um XML bem formado, em vez de fazer a etapa falhar.
Converter XML em JSON
Seção intitulada “Converter XML em JSON”Saída escolhe no que cada documento se transforma:
- Colunas (padrão) — os valores analisados em colunas, conforme definido abaixo.
- Elemento como JSON — cada documento em Campo XML é substituído pelo seu texto JSON, com uma linha de saída por linha de entrada. Os atributos se tornam campos
@, o texto próprio de um elemento se torna#texte as filhas repetidas se tornam matrizes. As opções de elemento, de valor filho, de XML externo e de XPath ficam desativadas; Ignorar linhas cujo XML não pode ser analisado continua valendo.
Para dar valores tipados ao JSON, defina Detect Value Types From First N Documents como um número de documentos. O JSON passa então a conter os elementos filhos da raiz, cada um tipado a partir dos primeiros documentos nesse número como número inteiro, número decimal, booleano, data, carimbo de data/hora ou texto, ampliado para caber em todos esses documentos, como o schema_of_xml do Spark infere. Um campo que esses documentos não têm é omitido, e um valor que não pode ser lido como seu tipo fica nulo. Com 0, todos os valores permanecem texto.
Colunas XPath
Seção intitulada “Colunas XPath”A seção Consultas XPath funciona como o nó XPath do KNIME. Adicione linhas a Consultas (xpaths): em vez de uma linha por elemento, cada linha de entrada é copiada e recebe uma coluna por consulta XPath 1.0 sobre o XML em Campo XML. As colunas de passagem mantêm seus tipos. Cada consulta tem uma Coluna (target), uma expressão XPath 1.0 (path), um Resultado (kind) e Vários resultados (multi):
- Resultado — o tipo do valor:
String,Integer,Double,Number,Boolean,NodeouNodeSet. - Vários resultados — o que uma consulta que seleciona vários itens grava:
SingleCell(o primeiro),CollectionCell(um valor de lista),MultipleColumns(uma coluna cada),UngroupToRows(uma linha cada) ouJoinedText(o texto dos itens unido pelo Separador de itens (separator), um espaço por padrão; Partes do item (XPaths) (parts) obtém o texto de cada item a partir da primeira correspondência destes caminhos relativos, unido pelo Separador de partes (part_separator)). - Vazio é ausente (
empty_missing) — uma consulta que não seleciona nada gera uma célula ausente.
Estes campos da seção se aplicam junto com as consultas:
- Namespaces (
xpath_namespaces) — os pares{prefix: namespace URI}que as consultas usam. Prefixo de namespace da raiz (xpath_root_prefix) vincula o namespace padrão da raiz do documento a este prefixo. - Omitir o campo XML da saída (
xpath_remove_source) — omite o Campo XML da saída. - Uma consulta booleana falsa gera uma célula ausente (
xpath_missing_on_false) — uma consultaBooleanfalsa gera uma célula ausente. Uma consulta de coleção que não seleciona nada gera uma célula ausente (xpath_empty_set_missing) — uma consultaCollectionCellque não seleciona nada gera uma célula ausente. - Ler o campo XML como uma página HTML (
xpath_html) — lê o campo como uma página HTML, reparada em uma árvore XML sob uma raizhtml. - Coluna do número do item de “uma linha cada” (
xpath_ungroup_index) — com uma consultaUngroupToRows, grava nesta coluna o número do item, começando em 1, de cada linha. “Uma linha cada” sem resultado (xpath_ungroup_empty) decide o que acontece com um documento em que a consulta não seleciona nada: uma linha com o valor ausente (row, o padrão), nenhuma linha (drop) ou uma etapa com falha (fail). - Gravar apenas a tabela formada pelos elementos da primeira consulta (
xpath_table) — grava somente a tabela formada pelos elementos da primeira consulta, uma linha por elemento, como cadatrde uma tabela HTML, com seus elementos filhos como células de texto. Uma primeira linha de células de cabeçalho dá nome às colunas; caso contrário, elas se chamamColumn <n>.
Colunas
Seção intitulada “Colunas”A guia Colunas é o mapeador de dados padrão para as colunas de passagem: as colunas de origem que você quer levar adiante para cada linha de saída.
As colunas que a análise descobre (os atributos e as tags filhas de um elemento) são adicionadas
à saída automaticamente; você não precisa listá-las aqui. Quando um nome extraído colide com uma
coluna de passagem (ou com uma extraída anteriormente), ele é desduplicado com o acréscimo de um
número (id → id2 → id3), como no Alteryx.
Observações
Seção intitulada “Observações”Uma cadeia de etapas Análise de XML funciona como no Alteryx: todas as colunas de entrada são repassadas, de modo que uma etapa posterior pode analisar de novo uma coluna produzida por uma etapa anterior e referenciar as colunas extraídas por ela.