[jaquers] problema de XML y namespaces
Héctor Lahoz
hectorlahoz en gmail.com
Sab Ago 11 18:20:47 CEST 2018
Héctor Lahoz wrote:
>
> Tengo un "problemilla". Cogí por ahí un montón de datos en HTML.
> Concretamente en XHTML. Al menos es lo que pone en el DOCTYPE.
> Luego la realidad es que ni siquiera era XML bien formado así
> que no podía hacer mucho con ellos.
>
> Hice un script para, por lo menos, cerrar las etiquetas mal anidadas.
> Ahora ya son XML. Al menos está bien formado y ya puedo hacer algo
> con ellos.
Bueno, como nadie me responde lo haré yo mismo.
Quizá no hay muchos entendidos en XML por aquí.
O los que hay están de vacaciones. O si no lo están,
lo están sus neuronas. :-) Lo que sea.
Acabo de descubrir una cosa interesante de Firefox. Después de no sé
cuántos años usándolo nunca me había planteado esto. ¿Qué pasa cuando
guardas una página que dice ser XML (XHTML) pero no lo es? PUes que el
navegador amablemente cierra las etiquetas mal anidadas. ¿Cómo poner
estructura donde no la hay? No queda otra que intentar adivinar lo que
quería decir el autor.Claro que puede ser que no fuera eso lo que
quiso decir el autor de la página. Ejemplo:
Original:
<div>
<entry>Banco
<def>Armazón parecido a una silla pero más
alargado para albergar los culos de varias personas.
<def>Entidad que guarda el dinero de las personas.
</entry>
</div>
"Corregido" por Firefox:
<div>
<entry>Banco
<def>Armazón parecido a una silla pero más
alargado para albergar los culos de varias personas.
<def>Entidad que guarda el dinero de las personas.</def></def>
</entry>
</div>
Quedan unos elementos "def" anidados con muy mala pinta. Seguramente
lo que Firefox debería haber hecho es:
<div>
<entry>Banco
<def>Armazón parecido a una silla pero más
alargado para albergar los culos de varias personas.</def>
<def>Entidad que guarda el dinero de las personas.</def>
</entry>
</div>
Gracias, Firefox, buen intento. Pero lo único que hace es
esconder un poco más el problema. Ahora tengo un XML
bien formado pero totalmente inválido (e inservible).
Supongo que pasa lo mismo con los "<p>" de HTML.
Tampoco se le puede echar las culpas a Firefox.
La intención era buena.
En fin, Supongo que arreglando esto automáticamente
hay muchas probabilidades de hacerlo mal. Pero no
puedo arreglar mil ficheros a mano.
Habrá un día en que todos al levantar la vista
veremos una web que ponga "bien formado" ;-)
Del algún modo lo arreglaremos.
Japi jaquing!
Más información sobre la lista de distribución jaquers