Tôi đang sử dụng SimpleXml trên Android để deserialize một xml mà tôi không kiểm soát được. Bây giờ, mỗi khi xml thay đổi, nó sẽ phanh ứng dụng của tôi bởi vì tôi không có phần tử mới được định nghĩa trong lớp đối tượng của mình. Có cách nào tôi có thể chỉ định SimpleXML chỉ để bỏ qua những missmaps? Nhìn vào tài liệu và không thể tìm thấy bất cứ điều gì để giúp tôi giải quyết nó.sử dụng SimpleXML, cách bỏ qua các phần tử xml mà tôi không có trong lớp đối tượng của mình khi deserializing
Trả lời
Tôi khá chắc chắn rằng bạn có thể thực hiện bản đồ chặt chẽ bằng cách thay thế tuyên bố @Root
thông thường với @Root(strict=false)
, điều này sẽ loại bỏ yêu cầu rằng mọi phần tử phải khớp với một trường trong định nghĩa lớp học của bạn. Chính xác hơn, từ tài liệu:
Điều này được sử dụng để xác định xem đối tượng được biểu thị có phải là được phân tích cú pháp một cách nghiêm ngặt hay không. Phân tích cú pháp nghiêm ngặt yêu cầu mỗi phần tử và thuộc tính trong tài liệu XML khớp với một trường trong lược đồ lớp. Nếu một phần tử hoặc thuộc tính không khớp với một trường thì việc phân tích cú pháp không thành công với một ngoại lệ. Việc đặt phân tích cú pháp nghiêm ngặt thành false cho phép các chi tiết trong tài liệu XML nguồn được bỏ qua trong khi deserialization.
Ngoài ra còn có an example được đưa ra trong danh sách các hướng dẫn trên trang web dự án Simple XML.
Bạn có thể chỉ định chế độ nghiêm ngặt bị tắt cho tất cả các thẻ cho một số read
cụ thể bằng cách thêm vào "false" làm thông số cuối cùng. Cũng từ their documentation:
Nếu có nhiều đối tượng yêu cầu ánh xạ lỏng thì sử dụng chú thích Gốc có thể không phải là giải pháp lý tưởng. Trong một kịch bản như vậy, bản thân persister có thể được yêu cầu thực hiện ánh xạ lỏng lẻo. Chỉ cần chuyển một boolean vào phương thức đọc cho biết loại ánh xạ được yêu cầu. Theo mặc định, persister sử dụng ánh xạ nghiêm ngặt, có thể được ghi đè lên đối tượng theo đối tượng bằng cách sử dụng chú thích Gốc, như trong ví dụ trên. Tuy nhiên, mặc định này có thể được ghi đè như có thể thấy trong đoạn mã bên dưới.
Contact contact = serializer.read(Contact.class, source, false);
- 1. Làm thế nào để bỏ qua các phần tử XML không sử dụng trong khi deserializing một tài liệu?
- 2. Bỏ qua phần tử gốc trong khi deserializing json
- 3. Deserializing JSON - cách bỏ qua phần tử gốc?
- 4. Phần tử gốc Thiếu khi deserializing một phản ứng XML bằng cách sử dụng XmlSerializer
- 5. Bỏ qua mã hóa được chỉ định khi deserializing XML
- 6. Deserializing XML thành JSON mà không sử dụng hàm XmlDocument.Loadxml()
- 7. Khi nào tôi nên vứt bỏ các đối tượng của mình trong .NET?
- 8. Tại sao SimpleXML thay đổi mảng của tôi thành phần tử đầu tiên của mảng khi tôi sử dụng?
- 9. Bỏ qua loại chưa biết khi deserializing xml
- 10. Bỏ qua thuộc tính khi deserializing
- 11. Cách lấy innerText của một phần tử với SimpleXml
- 12. php simplexml với dấu chấm trong phần tử trong xml
- 13. Tôi có thể sử dụng các phần tử từ điển làm đối tượng khóa không?
- 14. Cách sử dụng không gian tên khi viết tệp XML bằng SimpleXML
- 15. FileNotFoundException khi Deserializing XML
- 16. Serializing/Deserializing Từ điển của các đối tượng với JSON.NET
- 17. Deserializing đối tượng lồng nhau bằng cách sử dụng RestTemplate
- 18. Làm cách nào tôi có thể sử dụng sprite cho biểu tượng datepicker jQuery của mình?
- 19. Làm cách nào để bỏ qua các mục khi tabbing mà không sử dụng tabindex?
- 20. Làm cách nào để nhóm các đối tượng jQuery mà không sử dụng các bộ chọn?
- 21. Deserializing địa phương NSString của JSON vào các đối tượng thông qua RestKit (không có mạng tải về)
- 22. Tôi có thể trừu tượng Khung thực thể khỏi các đối tượng của mình không?
- 23. Parse XML với Namespace sử dụng SimpleXML
- 24. Tôi có thể tạo một phiên bản mới của lớp đối tượng được quản lý tùy chỉnh của mình mà không phải trải qua NSEntityDescription không?
- 25. JAXB có luôn bỏ qua các phần tử 'phụ' không được chỉ định trong @ XmlType/propOrder không?
- 26. Deserializing một lớp trừu tượng trong Gson
- 27. Có cách nào nhanh chóng để chuyển đổi các đối tượng Java xml sang các đối tượng Scala xml không?
- 28. Deserializing xml lồng nhau thành đối tượng C#
- 29. GSON Deserializing Array của các đối tượng tùy chỉnh
- 30. Tại sao XmlReader bỏ qua mọi phần tử khác nếu không có dấu cách khoảng trắng?
MH, từ thông tin mà bạn đã cho tôi, tôi đã kết thúc việc thiết lập 'bản đồ lỏng lẻo' parm khi thực hiện đọc: serializer.read (Class1.class, nguồn, false). Cảm ơn đã giúp đỡ. – Alex