Tôi đang tạo đối tượng Tài liệu W3C bằng cách sử dụng giá trị Chuỗi. Khi tôi đã tạo đối tượng Document, tôi muốn thêm một không gian tên vào phần tử gốc của tài liệu này. Đây là mã hiện tại của tôi:Thêm không gian tên vào tài liệu XML đã được tạo
Document document = builder.parse(new InputSource(new StringReader(xmlString)));
document.getDocumentElement().setAttributeNS("http://com", "xmlns:ns2", "Test");
document.setPrefix("ns2");
TransformerFactory tranFactory = TransformerFactory.newInstance();
Transformer aTransformer = tranFactory.newTransformer();
Source src = new DOMSource(document);
Result dest = new StreamResult(new File("c:\\xmlFileName.xml"));
aTransformer.transform(src, dest);
gì tôi sử dụng như là đầu vào:
<product>
<arg0>DDDDDD</arg0>
<arg1>DDDD</arg1>
</product>
gì đầu ra sẽ giống như thế:
<ns2:product xmlns:ns2="http://com">
<arg0>DDDDDD</arg0>
<arg1>DDDD</arg1>
</ns2:product>
tôi cần phải thêm giá trị tiền tố và namespace cũng để chuỗi xml đầu vào. Nếu tôi thử mã ở trên, tôi nhận được ngoại lệ này:
NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
Đánh giá cao sự trợ giúp của bạn!
là 'bạn builder' namespace-aware? 'builder.isNamespaceAware()' – rolve