2012-07-24 17 views
34

Bazı XML yazdırma dosyalarında, bazı karakterlerin XML sözdizimine eşdeğerlerini dönüştürmeyi ihmal ettiği bazı XML yazdırma dosyalarıyla ilgili bir sorun yaşıyorum (ör. &, &'a dönüştürülmez).xmllint ile XML sözdizimini denetle

Bunu xmllint ile yakalamanın bir yolu var mı? (XSD kullanarak genel ağaç yapısını kontrol etmem gerekmiyor).

cevap

51
xmllint --noout your_test_file.xml 

Bu komutun dönüş kodunu kontrol edin. Bakınız documentation. Temel ayrıştırma hataları yerine getirildiğinde, 1 değeri döndürülür. Örn .: UTF-8

cat TEST.xml 

< XML versiyonu = "1.0" kodlama = "UTF-8" geçerli kılmak ve çıkış Test.xml olacak

echo $? 
+1

DTD'niz yoksa niçin '--valid 'bayrağı var? –

+0

@YzmirRamirez Teşekkürler, orada olmamalı. Cevabımı düzelttim. – Jarekczek

+2

//, Dönüş kodunu kontrol etmenin kolay bir yolu şu şekildedir: '$ xmllint --noout your_test_file.xml; echo $? '. –

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

?

< >! DOCTYPE JM SİSTEMİ "mydtd" >

<JM> . . . </JM >

+0

//, '--valid' kaldırılmamalıdır? –