Mantener el formato de texto al transformar un archivo XML con XSLT

10/10/2005 - 22:52 por TECNICOS | Informe spam
Estoy subiendo a mi web un archivo XML mediante un archivo transformador XSL
y el webcontrol <asp:xml de .NET y funciona pero no encuentro la forma de
que el XSL respete los espacios, saltos de línea etc. que tiene el texto
original y mi pregunta es si conoceis alguna forma de hacer esto

un saludo y gracias a todos

Preguntas similare

Leer las respuestas

#1 Rodrigo Fraga
25/10/2005 - 05:23 | Informe spam
Hola:
Bueno personalmente me parece que eso no se puede, al menos no he encontrado
una sola página que lo haga. Así que me pregunté ¿Por que? y encontré la
respuesta; "Al igual que el HTML, se basa en documentos de texto plano en los
que se utilizan etiquetas para delimitar los elementos de un documento. Sin
embargo, XML define estas etiquetas en función del tipo de datos que está
describiendo y no de la apariencia final que tendrán en pantalla o en la
copia impresa, además de permitir definir nuevas etiquetas y ampliar las
existentes." Esto afirma mi creencia de que XML no es un sustituto de HTML al
contrario es un complemento del HTML.

¿y que con eso? ahi lo dice, esta en función del tipo de datos que esta
describiendo... En una forma sencilla, y probablemente incongruente pero
explicativa, es como una base de datos pero para datos pequeños. Así que te
recomiendo usar tu SQL Server o algo semejante para los textos grandes o a
mano =P.

Sin embargo, nada es imposible, si cambias tu XML y lo subdivides por
parrafos seria una forma poco ortodoxa pero funcional, asi utilizas tu XSL y
le das el formato desde ahi... a ver, a ver, ¿como?... Así:
Tu XML
<book>
<titulo></titulo>
<parrafo1></parrafo1>
<parrafo2></parrafo2>
</book>

En tu XSL así
<div class="content">
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#C0C0C0" width="100%">
<tr>
<td width="100%" bgcolor="#F1F1F1" valign="top">
<center><span color="blue"> <xsl:value-of
select="titulo"/></span></center><br>
<p><xsl:value-of select="parrafo1"/></p>
<p><xsl:value-of select="parrafo2"/></p>
</td>
</tr>
</table>

Espero te ayude.
"TECNICOS" escribió:

Estoy subiendo a mi web un archivo XML mediante un archivo transformador XSL
y el webcontrol <asp:xml de .NET y funciona pero no encuentro la forma de
que el XSL respete los espacios, saltos de línea etc. que tiene el texto
original y mi pregunta es si conoceis alguna forma de hacer esto

un saludo y gracias a todos



Respuesta Responder a este mensaje
#2 Javier Jurado
02/11/2005 - 17:42 | Informe spam
Perdona Rodrigo pero durante unos dias no he entrado al foro, si al final
llegué a la conclusión de que la única forma es encasillar cada párrafo
entre <par></par> y para la indentacíon en XSL pintarle una imagen vacia de
ancho equivalente a 3 caracteres y con eso al menos se ve decente.

gracias por tu respuesta

"Rodrigo Fraga" escribió en el
mensaje news:
Hola:
Bueno personalmente me parece que eso no se puede, al menos no he
encontrado
una sola página que lo haga. Así que me pregunté ¿Por que? y encontré la
respuesta; "Al igual que el HTML, se basa en documentos de texto plano en
los
que se utilizan etiquetas para delimitar los elementos de un documento.
Sin
embargo, XML define estas etiquetas en función del tipo de datos que está
describiendo y no de la apariencia final que tendrán en pantalla o en la
copia impresa, además de permitir definir nuevas etiquetas y ampliar las
existentes." Esto afirma mi creencia de que XML no es un sustituto de HTML
al
contrario es un complemento del HTML.

¿y que con eso? ahi lo dice, esta en función del tipo de datos que esta
describiendo... En una forma sencilla, y probablemente incongruente pero
explicativa, es como una base de datos pero para datos pequeños. Así que
te
recomiendo usar tu SQL Server o algo semejante para los textos grandes o a
mano =P.

Sin embargo, nada es imposible, si cambias tu XML y lo subdivides por
parrafos seria una forma poco ortodoxa pero funcional, asi utilizas tu XSL
y
le das el formato desde ahi... a ver, a ver, ¿como?... Así:
Tu XML
<book>
<titulo></titulo>
<parrafo1></parrafo1>
<parrafo2></parrafo2>
</book>

En tu XSL así
<div class="content">
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#C0C0C0" width="100%">
<tr>
<td width="100%" bgcolor="#F1F1F1" valign="top">
<center><span color="blue"> <xsl:value-of
select="titulo"/></span></center><br>
<p><xsl:value-of select="parrafo1"/></p>
<p><xsl:value-of select="parrafo2"/></p>
</td>
</tr>
</table>

Espero te ayude.
"TECNICOS" escribió:

Estoy subiendo a mi web un archivo XML mediante un archivo transformador
XSL
y el webcontrol <asp:xml de .NET y funciona pero no encuentro la forma de
que el XSL respete los espacios, saltos de línea etc. que tiene el texto
original y mi pregunta es si conoceis alguna forma de hacer esto

un saludo y gracias a todos



Respuesta Responder a este mensaje
#3 Rod Fraga
29/11/2005 - 04:01 | Informe spam
Permiteme retractarme, he estado analizando y he visto esto:

Se puede manejar grandes cantidades de texto, incluso manejar html dentro
del html, el chiste esta en como hacerlo, te adjunto dos ejemplos:

<?xml version="1.0" encoding="UTF-8" ?>
- <!-- generator="wordpress/1.5.2"
- <rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
- <channel>
<title>Rod Blog</title>
<link></link>
<description>Rod Design Development Blog</description>
<pubDate>Mon, 28 Nov 2005 21:12:41 +0000</pubDate>
<generator>http://wordpress.org/?v=1.5.2</generator>
<language>en</language>
- <item>
<title>Empieza con .NET</title>
<link></link>
<comments></comments>
<pubDate>Mon, 28 Nov 2005 21:04:12 +0000</pubDate>
<dc:creator>Rod Fraga</dc:creator>
<category>General</category>
<guid></guid>
- <description>
- <![CDATA[
Ok, para aquellos que gusten empezar a desarrollar algunas páginas en
ASP.NET 2 o uno que otro Web Service, les paso la liga para que descarguen el
Visual Web Developer 2005 Express Edition
Con esto les basta y sobra para empezar a desarrollar sus aplicaciones.
El proximo Tutorial será de XML para que estén pendientes.
Warning: Son cerca [...]

]]>
</description>
<wfw:commentRSS></wfw:commentRSS>
</item>


Otro ejemplo, sigo buscando la forma, pero me parece que todo esta en el
XSL, hay un atributo que se llama preserv text, lo checo y te aviso...

<wfw:commentRss>http://intellekt.ws/blogs/chris/com...px</wfw:commentRss>

<trackback:ping>http://intellekt.ws/blogs/chris/ser.../trackback:ping>
<description><p>Esta onda me latió mucho:</p> <p><a
href="http://www.nec-design.co.jp/showcas...t;>http://www.nec-design.co.jp/showcase/index.html#pism</a><br
/><a
href="http://www.ociojoven.com/article/ar...t;>http://www.ociojoven.com/article/articleview/835735/1/11/</a><br
/><a
href="http://www.pencomputing.com/newspro...t;>http://www.pencomputing.com/newspro_pen/arc1-2004.html</a></p>
<p>La nueva era… Pen Computing </p> <p>Se ve padre, hay que ver que tan
práctico, bueno y barato resulta!</p> <p>Cheers!</p><img src
="http://intellekt.ws/blogs/chris/agg...aspx" width = "1" height = "1"
/></description>

http://rodblogdeve.blogspot.com/


"Javier Jurado" escribió:

Perdona Rodrigo pero durante unos dias no he entrado al foro, si al final
llegué a la conclusión de que la única forma es encasillar cada párrafo
entre <par></par> y para la indentacíon en XSL pintarle una imagen vacia de
ancho equivalente a 3 caracteres y con eso al menos se ve decente.

gracias por tu respuesta

"Rodrigo Fraga" escribió en el
mensaje news:
> Hola:
> Bueno personalmente me parece que eso no se puede, al menos no he
> encontrado
> una sola página que lo haga. Así que me pregunté ¿Por que? y encontré la
> respuesta; "Al igual que el HTML, se basa en documentos de texto plano en
> los
> que se utilizan etiquetas para delimitar los elementos de un documento.
> Sin
> embargo, XML define estas etiquetas en función del tipo de datos que está
> describiendo y no de la apariencia final que tendrán en pantalla o en la
> copia impresa, además de permitir definir nuevas etiquetas y ampliar las
> existentes." Esto afirma mi creencia de que XML no es un sustituto de HTML
> al
> contrario es un complemento del HTML.
>
> ¿y que con eso? ahi lo dice, esta en función del tipo de datos que esta
> describiendo... En una forma sencilla, y probablemente incongruente pero
> explicativa, es como una base de datos pero para datos pequeños. Así que
> te
> recomiendo usar tu SQL Server o algo semejante para los textos grandes o a
> mano =P.
>
> Sin embargo, nada es imposible, si cambias tu XML y lo subdivides por
> parrafos seria una forma poco ortodoxa pero funcional, asi utilizas tu XSL
> y
> le das el formato desde ahi... a ver, a ver, ¿como?... Así:
> Tu XML
> <book>
> <titulo></titulo>
> <parrafo1></parrafo1>
> <parrafo2></parrafo2>
> </book>
>
> En tu XSL así
> <div class="content">
> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse:
> collapse" bordercolor="#C0C0C0" width="100%">
> <tr>
> <td width="100%" bgcolor="#F1F1F1" valign="top">
> <center><span color="blue"> <xsl:value-of
> select="titulo"/></span></center><br>
> <p><xsl:value-of select="parrafo1"/></p>
> <p><xsl:value-of select="parrafo2"/></p>
> </td>
> </tr>
> </table>
>
> Espero te ayude.
> "TECNICOS" escribió:
>
>> Estoy subiendo a mi web un archivo XML mediante un archivo transformador
>> XSL
>> y el webcontrol <asp:xml de .NET y funciona pero no encuentro la forma de
>> que el XSL respete los espacios, saltos de línea etc. que tiene el texto
>> original y mi pregunta es si conoceis alguna forma de hacer esto
>>
>> un saludo y gracias a todos
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida