文字列値を使用してW3Cドキュメントオブジェクトを作成しています。Documentオブジェクトを作成したら、このドキュメントのルート要素に名前空間を追加します。これが私の現在のコードです:
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);
私が入力として使用するもの:
<product>
<arg0>DDDDDD</arg0>
<arg1>DDDD</arg1>
</product>
出力は次のようになります。
<ns2:product xmlns:ns2="http://com">
<arg0>DDDDDD</arg0>
<arg1>DDDD</arg1>
</ns2:product>
入力xml文字列にもプレフィックス値と名前空間を追加する必要があります。上記のコードを試してみると、次の例外が発生します。
NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
あなたの助けに感謝!