Tworzę obiekt dokumentu W3C, używając wartości typu String. Po utworzeniu obiektu Document, chcę dodać obszar nazw do głównego elementu tego dokumentu. Oto mój bieżący kod:Dodawanie obszaru nazw do już utworzonego dokumentu XML
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);
Co mogę używać jako wejście:
<product>
<arg0>DDDDDD</arg0>
<arg1>DDDD</arg1>
</product>
Co wyjście powinno wyglądać następująco:
<ns2:product xmlns:ns2="http://com">
<arg0>DDDDDD</arg0>
<arg1>DDDD</arg1>
</ns2:product>
trzeba dodać wartość prefiksu i nazw również wejściowy ciąg xml. Jeśli spróbuję powyższego kodu, otrzymuję ten wyjątek:
NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
Doceń swoją pomoc!
Is Twój 'builder' przestrzenie nazw? 'builder.isNamespaceAware()' – rolve