L'ajout d'espace de noms déjà créé document XML

Je suis entrain de créer un Document du W3C objet à l'aide d'une Chaîne de valeur. Une fois que j'ai créé l'objet Document, je veux ajouter un espace de noms de l'élément racine du document. Voici mon code actuel:

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);

Ce que j'utilise comme entrée:

<product>
    <arg0>DDDDDD</arg0>
    <arg1>DDDD</arg1>
</product>

Ce que la sortie doit ressembler à:

<ns2:product xmlns:ns2="http://com">
    <arg0>DDDDDD</arg0>
    <arg1>DDDD</arg1>
</ns2:product>

Je besoin d'ajouter le préfixe de la valeur et de l'espace de noms aussi à l'entrée de la chaîne xml. Si j'ai essayer le code ci-dessus, j'obtiens cette exception:

NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.

Remercie de votre aide!

  • Est votre builder de l'espace de noms courant? builder.isNamespaceAware()
InformationsquelleAutor Dilip | 2012-06-21