Bash:
Làm việc với XML
Cách thực hiện:
Dưới đây là cách để phân tích cú pháp XML trong Bash. Công cụ? xmllint và xmlstarlet. Lặp qua các phần tử XML? Chắc chắn rồi. Ví dụ với kết quả mẫu:
# Giả sử xmlstarlet đã được cài đặt
# Cài đặt với: apt-get install xmlstarlet
# Phân tích cú pháp nội dung XML
cat <<EOF > sample.xml
<fruits>
<fruit name="Apple"/>
<fruit name="Banana"/>
</fruits>
EOF
# Trích xuất tên với xmlstarlet
xmlstarlet sel -t -m "//fruit" -v "@name" -n sample.xml
# Kết quả sẽ là:
# Apple
# Banana
Sâu hơn nữa
Trở lại những năm 90, XML xuất hiện như một lựa chọn đơn giản hơn so với SGML, nhưng có cấu trúc hơn so với HTML. Bây giờ, nó có các đối thủ - chẳng hạn như JSON, YAML. Nhưng XML vẫn còn tồn tại, đặc biệt là trong cấu hình và các dịch vụ web dựa trên SOAP.
Về công cụ, xmllint thoải mái cho việc xác thực XML, truy vấn xpath. xmlstarlet là công cụ đa năng cho các trò lố XML - truy vấn, chỉnh sửa, xác thực, biến đổi. Trong kịch bản bash, chúng là siêu anh hùng cho các nhiệm vụ XML.
Bên dưới cơ sở, xmllint sử dụng libxml2 – bộ phân tích cú pháp XML C. Nó nhanh, nhưng thông điệp lỗi? Khó hiểu. Và xmlstarlet? Mẫu đệ quy và hỗ trợ EXSLT. Khó hiểu nhưng mạnh mẽ.
Xem thêm
- xmlsoft.org: Các thông tin về Libxml2 và xmllint.
- Stack Overflow: Các vấn đề và giải pháp thực tế.
- Hướng dẫn XML của W3Schools: Cơ bản về XML.