2009-09-08 26 views
15

Như bạn đã biết, cách thích hợp để tạo phần tử Dom trong Java là thực hiện một việc như thế này.Java: Tạo phần tử DOM từ phần tử, không phải tài liệu

import org.w3c.dom.Document; 
import org.w3c.dom.Element; 

Document d; 
Element e; 

e = d.createElement("tag"); 

Bạn cần sử dụng d để tạo phần tử vì nó cần ngữ cảnh tài liệu. (Tôi không chắc chắn 100% lý do tại sao, nhưng có lẽ hiểu lầm này là một phần của vấn đề của tôi)

Những gì tôi không hiểu là, tại sao bạn không thể làm một cái gì đó như thế này

Element e; 
Element e2; 

e2 = e.createElement("anothertag"); 

Kể từ e đã có bối cảnh của d, tại sao tôi không thể tạo một phần tử khác từ một phần tử? Nó chắc chắn sẽ đơn giản hóa thiết kế của tôi không phải giữ một tham chiếu đến Tài liệu ở khắp mọi nơi.

Trả lời

6

tôi đã dành vật quá dài với vấn đề này của các tài liệu trong W3C DOM. Khái niệm về tài liệu chủ sở hữu cũng như nhà máy (createElement (...)) đang hạn chế. Nếu bạn không bắt buộc phải sử dụng DOM W3C, tôi sẽ thay đổi thành Mã nguồn mở XOM (http://www.xom.nu). Điều này được phát triển đơn giản và linh hoạt hơn W3C (ví dụ: bạn có thể phân lớp Element và Document chỉ có một vai trò nhỏ). XOM không yêu cầu Tài liệu trừ khi bạn muốn tuần tự hóa. Một điều mà ngay lập tức trở nên đơn giản hơn là di chuyển các yếu tố xung quanh giữa các cây khác nhau.

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