Análisis de XML
Descripción
Sección titulada «Descripción»El paso Análisis de XML lee el XML contenido en una columna de una tabla de origen y lo convierte en filas. Para cada fila de entrada, encuentra todas las apariciones del elemento que usted indica y emite una fila de salida por cada coincidencia, proyectando los atributos de ese elemento y los valores de sus etiquetas secundarias en columnas.
Es el equivalente de la herramienta XML Parse de Alteryx. El análisis se ejecuta en el motor de flujos de trabajo (las bases de datos no pueden analizar XML en SQL), por lo que el paso es nativo de PlaidCloud y no tiene alternativa en SQL.
Origen y opciones
Sección titulada «Origen y opciones»- Tabla de origen: la tabla cuyas filas contienen el XML que se analizará.
- Tabla de salida: la tabla en la que se escriben las filas analizadas.
- Campo XML: la columna que contiene el texto XML.
- Elemento: el elemento cuyas apariciones se convierten, todas, en filas de salida. Déjelo en blanco para analizar los elementos de nivel superior.
- Leer el elemento como expresión XPath 1.0: trata Elemento como una expresión XPath 1.0
en lugar de un nombre, de modo que pueda usar predicados, pruebas de atributos,
comodines y funciones como
count(),name()ycontains(). Una ruta relativa empieza en el elemento raíz del documento. Cada elemento que selecciona la expresión se convierte en una fila de salida. Un elemento se analiza como de costumbre. Cualquier otro elemento, como un atributo o el resultado decount(), reemplaza el valor de Campo XML en su fila por su propio valor; con los valores secundarios activados, un atributo seleccionado obtiene en cambio una columna con su propio nombre. El XML se lee con las entidades y el acceso a la red desactivados, y un documento que no está bien formado hace fallar el paso, salvo que omita esas filas. - Emitir los valores de los elementos secundarios como columnas: para cada elemento coincidente, agrega una columna por cada etiqueta secundaria con el valor de ese elemento secundario.
- Emit each child’s outer XML: agrega además una columna
<tag>_OuterXMLcon el XML serializado de cada elemento secundario (útil cuando un elemento secundario contiene a su vez más XML que usted analiza en un paso posterior). - Omitir las filas cuyo XML no se puede analizar: descarta una fila de entrada cuyo valor no es XML bien formado en lugar de hacer fallar el paso.
Convertir XML a JSON
Sección titulada «Convertir XML a JSON»Salida elige en qué se convierte cada documento:
- Columnas (predeterminado): los valores analizados en columnas, según se configura más abajo.
- Elemento como JSON: cada documento del Campo XML se reemplaza por su texto JSON, con una fila de salida por fila de entrada. Los atributos se convierten en campos
@, el texto propio de un elemento se convierte en#texty los elementos secundarios repetidos se convierten en matrices. Las opciones de elemento, valor secundario, XML externo y XPath están deshabilitadas; Omitir las filas cuyo XML no se puede analizar sigue aplicándose.
Para que el JSON tenga valores con tipo, establezca Detect Value Types From First N Documents en un número de documentos. El JSON contiene entonces los elementos secundarios de la raíz, cada uno con el tipo inferido a partir de esa cantidad de primeros documentos: número entero, número decimal, booleano, fecha, marca de tiempo o texto, ampliado para que quepan todos esos documentos, tal como lo infiere schema_of_xml de Spark. Un campo que esos documentos no tienen se omite, y un valor que no se puede leer como su tipo es nulo. Con 0, todos los valores siguen siendo texto.
Columnas XPath
Sección titulada «Columnas XPath»La sección Consultas XPath funciona como el nodo XPath de KNIME. Agregue filas a Consultas (xpaths): en lugar de una fila por elemento, cada fila de entrada se copia y obtiene una columna por cada consulta XPath 1.0 sobre el XML del Campo XML. Las columnas de paso conservan sus tipos. Cada consulta tiene una Columna (target), una expresión XPath 1.0 (path), un Resultado (kind) y Varios resultados (multi):
- Resultado: el tipo de valor:
String,Integer,Double,Number,Boolean,NodeoNodeSet. - Varios resultados: lo que escribe una consulta que selecciona varios elementos:
SingleCell(el primero),CollectionCell(un valor de lista),MultipleColumns(una columna cada uno),UngroupToRows(una fila cada uno) oJoinedText(el texto de los elementos unido por el Separador de elementos (separator), un espacio de forma predeterminada; Partes del elemento (XPaths) (parts) toma el texto de cada elemento de la primera coincidencia de estas rutas relativas en su lugar, unido por el Separador de partes (part_separator)). - Vacío es ausente (
empty_missing): una consulta que no selecciona nada da una celda ausente.
Estos campos de la sección se aplican con las consultas:
- Espacios de nombres (
xpath_namespaces): los pares{prefix: namespace URI}que usan las consultas. Prefijo de espacio de nombres de la raíz (xpath_root_prefix) vincula a este prefijo el espacio de nombres predeterminado de la raíz del documento. - Omitir el campo XML de la salida (
xpath_remove_source): omite el Campo XML de la salida. - Una consulta booleana que es falsa da una celda ausente (
xpath_missing_on_false): una consultaBooleanque es falsa da una celda ausente. Una consulta de colección que no selecciona nada da una celda ausente (xpath_empty_set_missing): una consultaCollectionCellque no selecciona nada da una celda ausente. - Leer el campo XML como una página HTML (
xpath_html): lee el campo como una página HTML, reparada en un árbol XML bajo una raízhtml. - Columna del número de elemento de «una fila cada uno» (
xpath_ungroup_index): con una consultaUngroupToRows, escribe en esta columna el número de elemento (base 1) de cada fila. «Una fila cada uno» sin resultado (xpath_ungroup_empty) decide lo que da un documento en el que la consulta no selecciona nada: una fila con el valor ausente (row, el valor predeterminado), ninguna fila (drop) o un paso fallido (fail). - Escribir solo la tabla que forman los elementos de la primera consulta (
xpath_table): escribe solo la tabla que forman los elementos de la primera consulta, una fila por elemento, como cadatrde una tabla HTML, con sus elementos secundarios como celdas de texto. Una primera fila de celdas de encabezado da nombre a las columnas; de lo contrario, se llamanColumn <n>.
Columnas
Sección titulada «Columnas»La pestaña Columnas es el asignador de datos estándar para las columnas de paso: las columnas de origen que desea trasladar a cada fila de salida.
Las columnas que descubre el análisis (los atributos y las etiquetas secundarias de un elemento) se
agregan a la salida automáticamente; no es necesario que las enumere aquí. Cuando un nombre
extraído coincide con una columna de paso (o con una extraída anteriormente), se desduplica
anexándole un número (id → id2 → id3), igual que en Alteryx.
Una cadena de pasos Análisis de XML funciona como la de Alteryx: todas las columnas entrantes se trasladan, de modo que un paso posterior puede volver a analizar una columna que produjo un paso anterior y hacer referencia a las columnas extraídas por el paso anterior.