2012-07-24 41 views
34

Tôi đang gặp sự cố với một số tệp in XML nơi hệ thống nguồn bỏ qua để chuyển đổi một số ký tự sang cú pháp XML tương đương (ví dụ: & không được chuyển đổi thành &).kiểm tra cú pháp XML với xmllint

Có cách nào để bắt nội dung này bằng xmllint không? (Tôi không cần phải kiểm tra cấu trúc cây chung bằng XSD).

Trả lời

51
xmllint --noout your_test_file.xml 

Kiểm tra mã trả lại của lệnh này. Xem documentation. Giá trị của 1 được trả lại khi gặp lỗi phân tích cú pháp cơ bản. Ví dụ .:

echo $? 
+1

Tại sao có cờ '--valid' nếu bạn không có DTD? –

+0

@YzmirRamirez Cảm ơn, nó không nên ở đó. Tôi đã sửa lại câu trả lời của mình. – Jarekczek

+2

//, Một cách dễ dàng để kiểm tra mã trả về sau: '$ xmllint --noout your_test_file.xml; echo $? '. –

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

sẽ xác nhận và đầu ra test.xml trong utf-8

cat TEST.xml 

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

<! DOCTYPE JM SYSTEM "mydtd" >

<JM> . . . </JM >

+0

//, Bạn có nên xóa '--valid' không? –

Các vấn đề liên quan