2013-06-07 33 views
5

Sự cố:

Khi khoảng trắng không đáng kể, đại diện có thể rất quan trọng.Làm cách nào để xử lý khoảng trắng với elementtree của Python?

Giải thích:

Trong XML Schema Phần 2: Datatypes Second Edition các ràng buộc khía cạnh khoảng trắng được định nghĩa với nhiều loại có nguồn gốc từ chuỗi (http://www.w3.org/TR/xmlschema-2/#rf-whiteSpace). Nếu điều này whiteSpace khía cạnh là thay thế hoặc thu gọn, giá trị có thể được thay đổi trong thời gian normalization.

Có một lưu ý ở phần cuối của Section 4.3.6:

Ký hiệu #xA sử dụng ở đây (và các nơi khác trong mô tả này) đại diện cho Character Set Universal (UCS) điểm mã thập lục phân Một thức ăn (dòng), được biểu thị bằng U + 000A. Ký hiệu này phải là được phân biệt với & #xA ;, là tham chiếu ký tự XML cho rằng cùng một điểm mã UCS.

Ví dụ:

Nếu datatype cho một yếu tố elemkhoảng trắng chế sụp đổ, "<elem> text </elem>" nên trở thành "text" (hàng đầu và dấu khoảng trắng loại bỏ), nhưng "<elem>&#x20;text&#x20;</elem>" nên trở thành " text " (khoảng trắng được mã hóa bằng tham chiếu ký tự không bị xóa).

Câu hỏi:

Vì vậy, trình phân tích cú pháp/cây xử lý việc chuẩn hóa này hoặc được thực hiện sau đó.

  • phân tích cú pháp được thông báo:
    • ở đâu để tôi cung cấp các phân tích cú pháp hoặc người xây dựng cây với các thông tin về làm thế nào để bình thường hóa một số phần tử XML?
    • Có điều gì đó giống như set_whitespace_normalization('./country/neighbor', 'collapse') không?
    • Có móc nào giống như normalize(content) trong trình phân tích cú pháp hoặc trình tạo cây không?
  • bài chế biến
    • Làm thế nào để truy cập vào các nội dung ban đầu của một số nguyên tố?
    • Có một số elem.original_text, có thể trả lại "&#x20;text&#x20;" không?
    • Có một số elem.unnormalized_text, có thể trả lại "  text  "?

Tôi muốn sử dụng xml.etree của Python.ElementTree nhưng tôi sẽ xem xét bất kỳ thư viện XML nào khác thực hiện công việc.

Disclaimer:

Tất nhiên đó là phong cách xấu để khai báo không đáng kể khoảng trắng (thay hoặc sụp đổ) và sau đó để lừa bằng cách sử dụng tài liệu tham khảo nhân vật. Trong hầu hết các trường hợp, dữ liệu hoặc lược đồ phải được thay đổi để ngăn chặn điều đó, nhưng đôi khi bạn phải làm việc với các tài liệu XML nước ngoài các tài liệu XML nước ngoài. Và sự tồn tại tuyệt đối của ghi chú được trích dẫn ở trên cho thấy rằng các biên tập viên XML đã nhận thức được tình huống khó xử này và đã cố ý không ngăn chặn nó.

Trả lời

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