Tôi hiện đang sử dụng JAXB để phân tích các tệp xml. Tôi tạo ra các lớp cần thiết thông qua một tập tin xsd. Tuy nhiên, các tệp xml tôi nhận được không chứa tất cả các nút được khai báo trong các lớp được tạo ra. Sau đây là một ví dụ về cấu trúc file xml của tôi:Xử lý các nút bị thiếu với JAXB
<root>
<firstChild>12/12/2012</firstChild>
<secondChild>
<firstGrandChild>
<Id>
</name>
<characteristics>Description</characteristics>
<code>12345</code>
</Id>
</firstGrandChild>
</secondChild>
</root>
Tôi đang phải đối mặt với hai trường hợp sau:
- Nút
<name>
hiện diện trong các lớp được tạo ra nhưng không phải trong các tập tin XML - Nút không có giá trị
Trong cả hai trường hợp, giá trị được đặt thành rỗng. Tôi muốn có thể phân biệt khi nút không có trong tệp XML và khi nó hiện diện nhưng có giá trị null. Mặc dù tìm kiếm của tôi, tôi đã không tìm ra cách để làm như vậy. Bất kỳ sự giúp đỡ là chào đón nhiều hơn
Cảm ơn bạn rất nhiều trước cho thời gian của bạn và giúp
Trân
xsi: nil là bạn của bạn! đọc thêm ở đây http://stackoverflow.com/questions/774192/what-is-the-correct-way-to-represent-null-xml-elements – MariuszS
Cảm ơn bạn đã trả lời của bạn! Như tôi đã hiểu, điều này là để thiết lập giá trị của nút thành "" thay vì null. Vấn đề mà tôi đang phải đối mặt là đối với JAXB, một nút rỗng và một nút không tồn tại trong tệp xml được xử lý theo cùng một cách. Vì vậy, tôi không thể biết liệu tôi đã nhận được nút trong tệp hay tôi đã làm và giá trị của nó là null – user2249868
Ví dụ sau sẽ giúp với 'xsi: nil': http://blog.bdoughan.com/2012/04/binding -to-json-xml-handling-null.html –