2012-10-18 48 views

回答

1

你可以這樣做:

if xmllint --xpath '/my/path' file.xml; then 
    echo "success" 
else 
    echo >&2 "error" 
    exit 1 
fi 

如果你沒有--xpath開關

file=/path/to/file 
xpath='/foo/bar' 
result="$(echo "cat $xpath" | xmllint --shell "$file")" 

if [ $(echo "$result" | wc -l) -gt 2 ]; then 
    echo "success" 
else 
    echo >&2 "error" 
    exit 1 
fi 
+0

我不認爲--xpath是xmllint的一個選項。 –

+0

http://pastie.org/5080881你有沒有讀過手冊頁或幫助?我的腳本正在全面工作。如果你不明白,請問。 –

+0

按字母順序,手冊頁的最後一個選項是--xmlout。這就是我寫這個的原因。也許我們正在使用不同版本的xmllint。 –

0

或者,如果你有,你要驗證的架構xml文件,你可以這樣做: xmllint --noout --schema your_xsd_file your_xml_file 2> myxm lval.out

myxmlval.out將是捕獲錯誤,從xmllint架構驗證出來的文件