2013-07-23 15 views
5

Tôi cần tạo một số XML bằng JavaScript. Một trong những điều khó khăn hơn là tôi cần điền nội dung văn bản của một nút có tên XML đủ điều kiện. Đó là, một tên địa phương và tiền tố, chẳng hạn như myns: myelement.Làm thế nào để tạo một nút không gian tên XML trong JavaScript?

Khó khăn là tài liệu XML không chứa bất kỳ phần tử hoặc thuộc tính nào khác cho không gian tên mà tiền tố sẽ bị ràng buộc. Vì vậy, tôi cần phải thêm một nút không gian tên (xmlns) vào phần tử kèm theo, để xác định một tiền tố. Ví dụ: -

<myElement xmlns:myprefix="http://something">myprefix:foo</myElement> 

Tôi không thể thấy cách hay để thêm nút không gian tên xmlns trong JavaScript. Hiện tại, tôi có hack khủng khiếp sau: -

 // Hacky way to get a namespace prefix definition. TODO: can we do something nicer? 
     var prefix = "ixe"; 
     requestElement.setAttributeNS(inputTypes[0].namespaceURL, prefix + ":" + "def", ""); 
     inputElement.textContent = prefix + ":" + inputTypes[0].localName; 

Tôi đang tạo thuộc tính không cần thiết với không gian tên mong muốn và tiền tố tùy ý. Điều này làm cho tài liệu được tạo ra có một nút không gian tên xmlns để xác định tiền tố cho không gian tên.

Bật FireFox và Chrome mới nhất, nhưng không phải trên IE, người ta có thể làm inputElement.setAttribute("xmlns:" + PREFIX, inputType.namespaceUri);. Nhưng tôi muốn một giải pháp trình duyệt trung lập.

Nhưng tôi không muốn tạo thuộc tính giả. Chắc chắn, nó phải có khả năng tạo nút không gian tên một cách rõ ràng. Tôi đã bỏ lỡ điều gì?

+2

Xin chào, bạn có thể có thể xem xét điều này http://stackoverflow.com/questions/9160418/xml-node-add-an-attribute-with-a-namespace –

Trả lời