2012-07-24 69 views
34

我遇到了一些XML打印文件的問題,其中源系統省略了將某些字符轉換爲其語法等效XML語法(例如,&未轉換爲&)。使用xmllint檢查XML語法

有沒有辦法用xmllint來捕捉這個? (我不需要使用XSD檢查一般樹結構)。

回答

51
xmllint --noout your_test_file.xml 

檢查此命令的返回代碼。請參閱documentation。當遇到基本分析錯誤時,返回值1。例如爲:

echo $? 
+1

爲什麼'--valid'標誌如果你沒有DTD? – 2012-09-09 23:33:12

+0

@YzmirRamirez謝謝,它不應該在那裏。我糾正了我的答案。 – Jarekczek 2012-09-10 05:53:27

+2

//,檢查返回碼的簡單方法如下:'$ xmllint --no your_test_file.xml; echo $?'。 – 2015-11-19 00:38:05

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

將在UTF-8

cat TEST.xml 

< XML版本= 「1.0」 編碼= 「UTF-8」 驗證和輸出的test.xml? >

<!DOCTYPE JM SYSTEM 「mydtd」 >

<JM> 。 。 。 </JM >

+0

//,你不應該刪除'--valid'嗎? – 2015-11-19 00:36:09