XSL - Xslt para importar xml en libreoffice [SoyNovato]

 
Vista:

Xslt para importar xml en libreoffice [SoyNovato]

Publicado por Anonio (1 intervención) el 27/12/2016 13:51:18
Hola y gracias por su atención,

Mi problema es que tengo un montón de archivos XML con la misma estructura, y mi intención seria volcarlos en una tabla de LibreOffice (excell me gusta mas pero este es el que nos obligan a utilizar en la oficina).
Llevo días informándome y descubrí la existencia de XSLT, pero por mas que miro, todos los tutoriales/manuales que encuentro son para transformar los XML en HTML/XML/... pero no encuentro ningún ejemplo claro que explique la creación de un XSLT para cargar XML's en LibreOfice (ni excell ni otros..)

Mis XML tienen este formato (son mucho mas largos):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<identificationInfo>
	<MD_DataIdentification>
		<citation>
			<CI_Citation>
				<title>DATOS</title>
				<date>
					<CI_Date>
						<date>DATOS</date>
						<dateType>DATOS</dateType>
					</CI_Date>
				</date>
			</CI_Citation>
		</citation>
	</MD_DataIdentification>
	<abstract>DATOS</abstract>
	<purpose>DATOS</purpose>
</identificationInfo>


Y quiero poder cargarlos de forma que el contenido de la etiqueta 'title' acabe bajo la columna "titulo" en la tabla (de LibreOffice), el contenido de 'date' bajo la columna "fecha" etc..

GRACIAS, tengan en cuenta que hace unos días ni si quiera conocía XSLT, una explicación 'para tontos' sin tecnicismos me iria muy bien
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Carga de XML en una tabla de LibreOffice

Publicado por Alejandro (227 intervenciones) el 07/07/2023 18:27:35
Para cargar los datos de los archivos XML en una tabla de LibreOffice utilizando XSLT, puedes generar un archivo CSV (valores separados por comas) con la estructura y los datos que deseas. A continuación, te explicaré los pasos necesarios:

1. Crea un archivo XSLT con la siguiente estructura:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text" encoding="UTF-8"/>
 
  <xsl:template match="/">
    <xsl:text>titulo,fecha,abstract,purpose&#10;</xsl:text> <!-- Encabezados de la tabla -->
    <xsl:apply-templates select="//identificationInfo/MD_DataIdentification/citation/CI_Citation"/> <!-- Aplicar plantilla para cada CI_Citation -->
  </xsl:template>
 
  <xsl:template match="CI_Citation">
    <xsl:value-of select="concat(title, ',')"/>
    <xsl:value-of select="concat(date/date, ',')"/>
    <xsl:value-of select="concat(../../abstract, ',')"/>
    <xsl:value-of select="../../purpose"/>
    <xsl:text>&#10;</xsl:text> <!-- Nueva línea para cada registro -->
  </xsl:template>
</xsl:stylesheet>

2. Guarda este archivo XSLT con una extensión ".xslt", por ejemplo, "transform.xslt".

3. Abre LibreOffice y crea una nueva hoja de cálculo.

4. En la hoja de cálculo, selecciona el menú "Datos" y luego "Importar desde texto". Se abrirá un asistente para importar texto.

5. En el asistente, selecciona "Separado" y haz clic en "Siguiente".

6. Selecciona "Coma" como el carácter separador y desmarca todas las demás opciones. Haz clic en "Siguiente".

7. En la sección "Formatos", selecciona "Texto" para todas las columnas. Haz clic en "Siguiente".

8. En la sección "Columnas", selecciona las columnas necesarias y asigna el formato adecuado a cada una (por ejemplo, "Texto" para todas las columnas). Haz clic en "Aceptar".

9. Se abrirá una ventana de diálogo que te permitirá seleccionar el archivo XML que deseas importar. Selecciona el archivo XML y haz clic en "Abrir".

10. En la ventana de diálogo "Importar desde texto", asegúrate de que la opción "Delimitador" está seleccionada y haz clic en "Aceptar".

11. La tabla con los datos del archivo XML se importará en la hoja de cálculo de LibreOffice.

Esta solución utiliza XSLT para transformar los datos del archivo XML en un archivo CSV que luego se importa en LibreOffice como una tabla. Los datos se colocan en columnas específicas (como "titulo" y "fecha") de acuerdo con la estructura del archivo XML original.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar