2012-07-24 15 views
34

Tengo un problema con algunos archivos de impresión XML donde el sistema fuente omite convertir algunos caracteres a su equivalente de sintaxis XML (por ejemplo, & no se convierte a &).comprobar la sintaxis XML con xmllint

¿Hay alguna manera de detectar esto con xmllint? (No necesito verificar la estructura general del árbol usando XSD).

Respuesta

51
xmllint --noout your_test_file.xml 

Compruebe el código de retorno de este comando. Ver documentation. El valor de 1 se devuelve cuando se cumplen los errores básicos de análisis. Ej .:

echo $? 
+1

¿Por qué la bandera '--valid' si no tiene una DTD? –

+0

@YzmirRamirez Gracias, no debería estar allí. Corregí mi respuesta. – Jarekczek

+2

//, una manera fácil de verificar el código de retorno sigue: '$ xmllint --noout your_test_file.xml; echo $? '. –

2
xmllint --valid --encode utf-8 TEST.xml 

validará y salida test.xml en utf-8

cat TEST.xml 

< xml version = "1.0" encoding = "UTF-8"? >

<! DOCTYPE JM SISTEMA "mydtd" >

<JM> . . . </JM >

+0

//, ¿No debería eliminar '--valid'? –

Cuestiones relacionadas