Conector de XML¶
El conector de XML se utiliza para los archivos XML (.xml).
Este conector crea registros a partir de cualquier estructura XML arbitraria convirtiendo todos los elementos de una profundidad específica (opcionalmente filtrados por etiqueta) en un conjunto de registros. Para cada uno de los elementos convertidos en un registro, tanto los atributos como las etiquetas delimitadas y el contenido se convierten en campos. Los datos complejos del interior de los campos se convierten en una representación JSON que contiene tanto los atributos como el contenido.
El conector de XML también puede leer archivos RDF (.rdf).
Creación¶
Consulte cómo añadir un archivo.
Configuración¶
Nombre |
Descripción |
Uso |
---|---|---|
Profundidad de elementos extraídos |
Profundidad de las etiquetas que deben convertirse en registros. |
Indique la profundidad de la etiqueta repetida en el cuadro de texto (p. ej. |
Extraer nombre de archivo |
Crea una columna nueva con el nombre del archivo de origen. |
De forma predeterminada, la casilla no está marcada. Marque la casilla para extraer el nombre de archivo en una columna añadida. |
Número de elementos primarios de los cuales obtener atributos |
Si las etiquetas circundantes contienen atributos relevantes, utilice esta opción para añadirlos en los registros. |
Indique el número de etiquetas primarias de las que se obtendrán los atributos (p. ej. |
Etiqueta de elementos extraídos |
Si hay etiquetas irrelevantes en la misma profundidad que los elementos extraídos, utilice esta opción para filtrar únicamente las etiquetas relevantes. |
Indique la etiqueta que se extraerá (p. ej. |
Especificaciones técnicas¶
Creación de campos¶
La directiva para crear campos a partir de un elemento se define según el ejemplo siguiente.
1 2 3 4 5 6 7 8 | <rows>
<data attribute="attribute value" other_attribute="other attribute value">
<indicator>GDP per capita</indicator>
<country>Andean Region</country>
<decimal>0</decimal>
</data>
<data attribute="2nd data tag">Text only</data>
</rows>
|
attribute | other_attribute | indicator | country | decimal | content |
attribute value | other attribute value | GDP per capita | Andean Region | 0 | |
2nd data tag | Text only |
Representación JSON¶
Los datos complejos del interior de los campos se convierten en formato JSON según el ejemplo siguiente.
1 2 3 4 5 6 7 8 9 | <mydocument has="an attribute">
<and>
<many>elements</many>
<many>more elements</many>
</and>
<plus a="complex">
element as well
</plus>
</mydocument>
|
{
"mydocument": {
"@has": "an attribute",
"and": {
"many": [
"elements",
"more elements"
]
},
"plus": {
"@a": "complex",
"#text": "element as well"
}
}
}
Ejemplos¶
Ejemplo 1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?xml version="1.0" encoding="utf-8"?>
<wb:rows xmlns:wb="http://www.worldbank.org">
<wb:data>
<wb:indicator id="6.0.GDPpc">GDP per capita (2005 USD)</wb:indicator>
<wb:country id="L5">Andean Region</wb:country>
<wb:date>2012</wb:date>
<wb:value>10561.668936515</wb:value>
<wb:decimal>0</wb:decimal>
</wb:data>
<wb:data>
<wb:indicator id="6.0.GDPpc">GDP per capita (2005 USD)</wb:indicator>
<wb:country id="L5">Andean Region</wb:country>
<wb:date>2011</wb:date>
<wb:value>10215.3319157514</wb:value>
<wb:decimal>0</wb:decimal>
</wb:data>
<wb:data>
<wb:indicator id="6.0.GDPpc">GDP per capita (2005 USD)</wb:indicator>
<wb:country id="L5">Andean Region</wb:country>
<wb:date>2010</wb:date>
<wb:value>9711.85739310366</wb:value>
<wb:decimal>0</wb:decimal>
</wb:data>
</wb:rows>
|
En este ejemplo:
Profundidad=2 porque
wb:data
es la 2ª etiqueta de su ruta (wb:rows/wb:data
).No es necesario filtrar las etiquetas dado que todos los elementos de esta profundidad son registros.
Conjunto de datos resultante:
wb:indicator | wb:country | wb:date | wb:value | wb:decimal |
{"#text": "GDP per capita (2005 USD)", "@id": "6.0.GDPpc"} | {"#text": "Andean Region", "@id": "L5"} | 2005 | 8154,72913271721 |
0 |
{"#text": "GDP per capita (2005 USD)", "@id": "6.0.GDPpc"} | {"#text": "Bolivia", "@id": "BO"} | 2009 | 5152,46337890625 |
0 |
{"#text": "GDP per capita (2005 USD)", "@id": "6.0.GDPpc"} | {"#text": "Bolivia", "@id": "BO"} | 2006 | 4715,9892578125 |
0 |
Ejemplo 2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?xml version="1.0" encoding="UTF-8"?>
<shoppingList>
<id>abcdef123</id>
<description>A shopping list</description>
<basket>
<itemCount>3</itemCount>
<totalQuantity>19</totalQuantity>
<item>
<name>tomato</name>
<quantity>10</quantity>
</item>
<item>
<name>potato</name>
<quantity>5</quantity>
</item>
<item>
<name>banana</name>
<quantity>4</quantity>
</item>
</basket>
</shoppingList>
|
Nota: La estructura XML de este documento es compleja, por lo que la detección de parámetros automáticos no podrá averiguar la profundidad correcta. Debe configurarse manualmente el extractor.
En este ejemplo:
Profundidad=3 porque
item
es la 3ª etiqueta de su ruta (shoppingList/basket/item
).Es necesario filtrar las etiquetas en
item
puesto queitemCount
ytotalQuantity
también se encuentran en profundidad=3 pero no son relevantes.
Conjunto de datos resultante:
nombre |
quantity |
potato | 5 |
banana | 4 |
tomato | 10 |