Estoy creando un objeto de documento W3C utilizando un valor de cadena. Una vez que creé el objeto de documento, quiero agregar un espacio de nombre al elemento raíz de este documento. Aquí está mi código actual:Agregar espacio de nombres a un documento XML ya creado
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);
Lo que yo uso como entrada:
<product>
<arg0>DDDDDD</arg0>
<arg1>DDDD</arg1>
</product>
Lo que la salida debe ser similar:
<ns2:product xmlns:ns2="http://com">
<arg0>DDDDDD</arg0>
<arg1>DDDD</arg1>
</ns2:product>
tengo que añadir el valor del prefijo y el espacio de nombres también la cadena xml de entrada. Si pruebo el código anterior obtengo esta excepción:
NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
¡Apreciar tu ayuda!
Es el espacio de nombres 'builder'-consciente? 'builder.isNamespaceAware()' – rolve