2012-07-24 10 views
34

Mam problem z niektórymi plikami wydruku XML, w których system źródłowy pomija konwersję niektórych znaków do ich odpowiedników w formacie XML (na przykład & nie jest konwertowany na &).sprawdź składnię XML za pomocą xmllint

Czy istnieje sposób na złapanie tego za pomocą xmllint? (Nie muszę sprawdzać ogólnej struktury drzewa za pomocą XSD).

Odpowiedz

51
xmllint --noout your_test_file.xml 

Sprawdź kod powrotu tego polecenia. Zobacz documentation. Wartość 1 jest zwracana, gdy są spełnione podstawowe błędy analizy. Np .:

echo $? 
+1

Po co używać flagi '--valid', jeśli nie masz DTD? –

+0

@YzmirRamirez Dzięki, nie powinno tam być. Poprawiłem moją odpowiedź. – Jarekczek

+2

//, Łatwy sposób sprawdzenia kodu powrotu następuje: '$ xmllint --noout your_test_file.xml; echo $? '. –

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

potwierdzi i wyjście test.xml UTF-8

cat TEST.xml 

< wersji xml = "1.0" Kodowanie = "UTF-8"? >

<! DOCTYPE JM SYSTEM "mydtd" >

<JM> . . . </JM >

+0

//, Nie powinieneś usunąć '--valid'? –

Powiązane problemy