Validar XML bien formado por consola

Gonzalo Diaz Cruz gnzsquall en gmail.com
Mar Mar 10 17:04:23 CLST 2009


On Martes 10 Marzo 2009 09:53:55 * * wrote:
> Wenas.....
>
> Puedes utilizar el mismo comando (find ......) pero reemplaza xmllint por
> xmlwf que a diferencia de xmllint verifica si el xml esta bien formado o no
> (no lo valida contra un dtd)
>
> espero te sirva...
>
> Hola, el asunto es así:
> > Tengo un sitio web con joomla. En el panel del backend me parece un error
> > porque en algun lado carga un xml mal formado (con fin inesperado), pero
> > no me
> > dice que archivo es. No es algo grave, pero si es molesto ver el error.
> >
> > Entonces baje un backup del sitio, y ahora quiero ver como recorrer todos
> > los
> > directorios y validarlo cualquier .xml
> >
> > Buscando encontré que posiblemente el comando xmllint me serviría, pero
> > detecta TODOS los .xml malos porque no tienen DTD en el encabezado.
> >
> > Entonces la pregunta es... ¿que comando me sirve para validar un XML
> > "bien formado"?.
> >
> > Estoy haciendo algo así:
> >
> > find . -name "*.xml" -exec xmllint --valid "{}" \;
> >
> > Me falta remplazar ese xmllint --valir por otra cosa que me sriva...
> >
> > ¿Alguna sugerencia?
> >
> > --
> > Gonzalo Díaz Cruz | @sir_gon | <gon>
> > http://gon.sociallinux.org

Gracias...
Lo logré así:

find . "*.xml" -exec xmlwf "{}"\;

Y efectivamente tenía 2 XMLs mal formados.
No alcancé a probar la solución de J. Olivares.
Por si alguien usa *Ubuntu, xmlwf está en el paquete "expat".

Comentario aparte, solo 1 archivo de todos los XML de joomla usaba el DTD 
oficial de extensiones para joomla. Para peor, el único que lo tenía era una 
extensión de terceros, ni siquiera los que venían en el "bundle" original de 
joomla tenían DTD. Una lástima que los desarrolladores descuiden sus propios 
parámetros ¿no?

Bueno, declaro este hilo "SOLUCIONADO". Muchas gracias.

-- 
Gonzalo Díaz Cruz | @sir_gon | <gon> 
http://gon.sociallinux.org



Más información sobre la lista de distribución Linux