Hãy xem xét các tài liệu XML sau đây:removeChild(): làm thế nào để loại bỏ thụt lề quá?
<items>
<item>item1</item>
<item>item2</item>
</items>
Bây giờ, chúng ta hãy loại bỏ tất cả các mục và thêm một số item mới. Mã số:
//-- assume we have Element instance of <items> element: items_parent
// and the Document instance: doc
//-- remove all the items
NodeList items = items_parent.getElementsByTagName("item");
for (int i = 0; i < items.getLength(); i++){
Element curElement = (Element)items.item(i);
items_parent.removeChild(curElement);
}
//-- add a new one
Element new_item = doc.createElement("item");
new_item.setTextContent("item3");
items_parent.appendChild(new_item);
nội dung mới của tập tin:
<items>
<item>item3</item>
</items>
Những dòng trống gây phiền nhiễu xuất hiện vì removeChild()
loại bỏ đứa trẻ, nhưng nó để lại thụt của con loại bỏ, và dòng phá vỡ quá. Và indent_and_like_break này được coi là nội dung văn bản, còn lại trong tài liệu.
Trong related question tôi đăng workaround:
items_parent.setTextContent("");
Nó loại bỏ các dòng trống. Nhưng đây là một số hạn chế của hack, nó loại bỏ hiệu ứng, không phải nguyên nhân.
Vì vậy, câu hỏi đặt ra là xóa nguyên nhân: cách xóa con bằng ý định ngắt dòng?
Kiểm tra [this] (http://stackoverflow.com/questions/978810/how-to-strip-whitespace-only-text-nodes-from-a-dom-before-serialization) – MadProgrammer
Cảm ơn bạn, giải pháp này đã được giải quyết vấn đề đối với tôi. Bạn có thể thêm câu trả lời này như một câu trả lời và tôi sẽ chấp nhận nó. Hoặc, câu hỏi này không thực sự chính xác, vì vậy, có thể gắn cờ nó là trùng lặp hoặc thậm chí xóa, không chắc chắn .. –
Nếu bạn thích nó, hãy bỏ phiếu cho câu hỏi được liên kết – MadProgrammer