PDA

Ver la Versión Completa : Se pueden guardar varios documentos HTML en un xml?


danyfebrero
27-08-2012, 23:16:08
hola
se pueden guardar varios documentos HTML en un xml?

por ejemplo:

<XML>
<html1>
<todo el html>
</html1>
<html2>
<todo el html>
</html2>
<html3>
<todo el html>
</html3>
....
</xml>

se puede hacer??? en caso de que se pueda me puden decir o dar una idea de como hacerlo o decirme donde leer o que leer o una mejor idea?
saludos y gracias
dany

dec
28-08-2012, 00:40:20
Hola,

Lo primero que se me ocurre (no me hagas mucho caso) es convertir el HTML en "base 64" y guardar este en el XML. Después podría recuperarse el HTML haciendo el paso inverso. Pero no me hagas mucho caso...

danyfebrero
28-08-2012, 05:32:29
hola dec, gracias pero no entendí nada, es que llevo poco tiempo programando, saludos

Chris
28-08-2012, 17:54:04
Hola Dany!

Sí se puede hacer, pero si lo que quieres hacer es visualizarlo en un Explorador ya eso no está asegurado.

La estructura del XML sería más o menos así:


<xml>
<html name="html1">
...
</html>

<html name="html2">
...
</html>
</xml>

mamcx
28-08-2012, 18:12:50
hola
se pueden guardar varios documentos HTML en un xml?


Porque quieres hacer eso?????

dec
28-08-2012, 18:40:04
Hola,

hola dec, gracias pero no entendí nada, es que llevo poco tiempo programando, saludos

Lo primero que se me ha ocurrido es usar "base 64" de manera que así nos quitásemos del medio posibles problemas entre las etiquetas HTML y el XML propiamente dicho. Echa un vistazo a este sitio web (http://www.motobit.com/util/base64-decoder-encoder.asp), por ejemplo. Ahí podrás ver que el siguiente código HTML:


<html>
<head>
<title>Hello world!</title>
</head>
<body>
<p>Hello world!</p>
</body>
</html>


Se puede convertir en la siguiente cadena de caracteres:


PGh0bWw+DQogPGhlYWQ+DQogIDx0aXRsZT5IZWxsbyB3b3JsZCE8L3RpdGxlPg0KIDwvaGVhZD4N
CiA8Ym9keT4NCiAgPHA+SGVsbG8gd29ybGQhPC9wPg0KIDwvYm9keT4NCjwvaHRtbD4=


En este mismo foro encontrarás información sobre cómo convertir cadenas a "base 64" y viceversa. El maestro Seoane te propone una solución en su sitio web. (http://delphi.jmrds.com/?q=node/43) No obstante, dicho todo esto, igual no es necesario hacer nada con el HTML, sino que podrías incluirlo en el propio código XML, si no me equivoco, entre "etiquetas XML CDATA" (http://www.w3schools.com/xml/xml_cdata.asp).

roman
28-08-2012, 18:40:38
Hola Dany!

Sí se puede hacer, pero si lo que quieres hacer es visualizarlo en un Explorador ya eso no está asegurado.

La estructura del XML sería más o menos así:


<xml>
<html name="html1">
...
</html>

<html name="html2">
...
</html>
</xml>


No creo que esto funcione, no al menos para obtener un XML válido. Un HTML no es un XML, así que no lo puedes simplemente "anidar" en el XML maestro.

Veo más factible lo que propone dec, ya que así, puedes guardar cualquer cosa, indistintamente de si es un html o no. Pero, a fin de cuentas, habría que responder a lo que pregunta mamcx.

// Saludos

danyfebrero
29-08-2012, 05:41:52
hola disculpen la tardanza, bueno le respondo a mam, lo que quiero lograr es almacenar una gran cantidad de documentos en un xml, porque fue lo que me recomendaron en otro post, quiero hacer una enciclopedia como la wiki o la encarta y quiero almacenar los datos y me dijeron que la mejor manera era en un xml entonces lo hice pero almacenaba los datos desde un richedit y todo funcionaba perfecto hasta que me di cuenta de que no lograba (al menos con mis conocimientos) hacer tablas, enlaces y agregar fotos en el richedit, luego pensé que si lo hacia en html podria hacer todo eso pero me quedaba la duda de si podria almacenar muchos html con todo la informacion en un xml. porque tengo que hacer un programa para introducir todos los articulos que van a estar en la enciclopedia y otro que sería la enciclopedia que leería el xml. quiza está mal pensado, pero fue lo que se me ocurrió.

de todas formas gracias, la idea de Dec esta buena voy a estudiar como hacerlo. gracias por todo nuevamente y si hay otra manera porfa diganme.

saludos
dany

roman
29-08-2012, 18:18:33
No tengo idea de porqué sería una buena o mala idea alamcenar los datos en un xml, pero, ¿has pensado en usar una base de datos?

// Saludos

mamcx
29-08-2012, 18:31:15
No creo que esto funcione, no al menos para obtener un XML válido. Un HTML no es un XML, así que no lo puedes simplemente "anidar" en el XML maestro.

Depende. Si es un documento XHTML si se puede anidar:

http://es.wikipedia.org/wiki/XHTML
XHTML es básicamente HTML expresado como XML válido.

mamcx
29-08-2012, 18:34:25
y me dijeron que la mejor manera era en un xml entonces lo hice pero almacenaba los datos desde un richedit y todo funcionaba perfecto hasta que me di cuenta de que no lograba (al menos con mis conocimientos) hacer tablas, enlaces y agregar fotos en el richedit, luego pensé que si lo hacia en html podria hacer todo eso pero me quedaba la duda de si podria almacenar muchos html con todo la informacion en un xml.

XML es un formato semi-estructurado ideal para intercambiar datos entre aplicaciones. HTML es un formato de presentacion. Pero una base de datos es el medio de almacenar esa informacion de forma eficiente!

Es mejor si usas una base de datos (como sqlite o firebird embeido, que se enlazaria directamente con el exe y no necesitan instalacion aparte) y crear dentro de las tablas un campo MEMO/BLOB donde almacenas el HTML, para la parte de la presentacion.

Un motor sql te permite hacer busquedas, relaciones, indices y muchas mas cosas que te van a ahorrar re-implementar todo eso en tu programa.

roman
29-08-2012, 18:38:12
Depende. Si es un documento XHTML si se puede anidar:

http://es.wikipedia.org/wiki/XHTML

No depende. HTML <> XHTML

// Saludos

danyfebrero
30-08-2012, 02:20:19
gracias otra vez, entonces debería hacerlo en una base de datos, y podría guardar en la base de datos todos los textos con el formato y las imagenes en el lugar que estan ubicadas? o pasaría todo a base64 como propuso dec para guardarlo en la base de datos?
saludos
dany

mamcx
30-08-2012, 03:41:23
No es necesario pasarlo a base64. Eso es solo para embeder archivos binarios y/o formatos de texto incompatibles con html/xml y similares.