PDA

Ver la Versión Completa : Insertar título a un documento XML


Al González
12-07-2004, 22:57:31
¡Buen día a todos!

Mientras estudio XML, aprovecho para hacer esta pregunta:

¿Cómo se puede insertar un texto en la parte superior de un documento XML, a manera de título?

Deseo que dicho título se muestre centralizado en la parte superior, cuando el documento sea abierto con un navegador o Excel.

Actualmente estudio la forma de hacerlo con un componente TXMLDocument (página Internet de la paleta de componentes).

Muchas gracias por sus aportaciones.

Seguimos en contacto.

Al González :).

__marcsc
12-07-2004, 23:18:59
Hola Al,

Hasta donde yo entiendo, XML sirve para almacenar y organizar información, no para visualizar. Si lo que quieres es visualizar los datos que contiene un XML en un navegador quizás deberías mirar XSL que es un filtro para HTML.

No digo que no puedas conseguir algo que te sirva, simplemente no entiendo el propósito.

Saludos.

Al González
13-07-2004, 17:23:03
¡Buen día!

Utilizo una rejilla de datos TCXGrid (Quantum Grid 4) de la biblioteca Developer Express.

La biblioteca contiene una función llamada ExportGrid4ToXML que sirve para exportar (guardar como) la información mostrada por una rejilla, como archivo XML.

En mi aplicación, el usuario puede elegir entre cuatro formatos de exportación: Excel (.xls), Web (.htm), texto (.txt) y XML (.xml). Cuando el usuario ordena la operación, la aplicación le solicita el título que deberá tener el documento resultante.

Entiendo que XML es un formato de almacenamiento de datos, pero también observo que, en muchas ocaciones, se utiliza también como un formato de presentación de datos, es decir, como formato de documento. De tal suerte que cuando un archivo generado con la función ExportGrid4ToXML es abierto con Excel o con un navegador de Internet, los datos contenidos en ese archivo se presentan con la misma apariencia que tenían en la rejilla de la aplicación.

Entonces, lo que busco es agregar el título que indicó el usuario, como primera línea de ese documento.

Aquí un extracto de uno de esos archivos .xml:

...
<LINES ColCount="64" RowCount="20">
<LINE>
<CELL Width="158" Align="center" ColSpan="4" StyleClass="10">Proyecto</CELL>
<CELL Width="320" Align="center" ColSpan="5" StyleClass="10">Enero</CELL>
<CELL Width="320" Align="center" ColSpan="5" StyleClass="10">Febrero</CELL>
<CELL Width="320" Align="center" ColSpan="5" StyleClass="10">Marzo</CELL>
<CELL Width="320" Align="center" ColSpan="5" StyleClass="10">Abril</CELL>
<CELL Width="320" Align="center" ColSpan="5" StyleClass="10">Mayo</CELL>
<CELL Width="320" Align="center" ColSpan="5" StyleClass="10">Junio</CELL>
<CELL Width="320" Align="center" ColSpan="5" StyleClass="10">Julio</CELL>
<CELL Width="320" Align="center" ColSpan="5" StyleClass="10">Agosto</CELL>
<CELL Width="320" Align="center" ColSpan="5" StyleClass="10">Septiembre</CELL>
<CELL Width="320" Align="center" ColSpan="5" StyleClass="10">Octubre</CELL>
<CELL Width="320" Align="center" ColSpan="5" StyleClass="10">Noviembre</CELL>
<CELL Width="341" Align="center" ColSpan="5" StyleClass="10">Diciembre</CELL>
</LINE><LINE>
...



Muchas gracias por sus aportaciones. Seguimos en contacto.

Al González :).

__marcsc
13-07-2004, 17:54:23
Hola de nuevo,

imagino que el resultado de esta exportación es un XML sin restricciones, es decir, no existe ningún schema o DTD que defina cuál es la estructura que tiene este documento. En caso que exista una definición de la estructura del documento, no podrás hacer lo que quieres, porqué por el hecho de añadir una línea estarías violando el formato establecido.

Lo que tu quieres hacer es algo como esto?


<DOCUMENT Title="Nombre definido por el usuario> -> Esta sería la nueva línea
<LINES ColCount = "64" RowCount="20">
<LINE>...
</LINES>
</DOCUMENT>


Saludos.

Al González
13-07-2004, 19:11:57
¡Hola de nuevo!

Agrego que cuando se genera el archivo .xml, se crea junto con él un archivo con extensión .xsl (Hoja de estilos XSL), que efectivamente complementa (y es necesario para) el formato de presentación de datos del archivo XML.

Aquí el comienzo del archivo Consulta_xml.xsl, generado para el archivo Consulta.xml:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates select="CACHE" />
</xsl:template>

<xsl:template match="CACHE">
<html>
<head>
<xsl:apply-templates select="TITLE" />
<xsl:apply-templates select="STYLES" />
</head>
<body>
<xsl:apply-templates select="LINES" />
</body>
</html>
</xsl:template>

<xsl:template match="TITLE">
<title>
<xsl:value-of select="." />
</title>
</xsl:template>
...



Muchas gracias por sus aportaciones. Seguiremos informando ;).

Al González :).

__marcsc
13-07-2004, 19:21:57
Ah amigo!! Tienes un XSL! :)

Entonces es muy fácil, porqué el XSL es solo un filtro que te formatea los datos para HTML.

Fíjate que en medio del documento tienes un <html> y un <body>. Luego puedes añadir múltiples tags html, como por ejemplo un header <h1> donde puedas poner el título.

Eso es tan sencillo que no creo ni que te valga la pena manipular el documento xsl mediante el componente TXMLDocument, creo que tratándolo como el fichero de texto que es puedes conseguir el resultado deseado.

Espero que te sirva.

Un saludo!