Javaでxmlの各要素にプレフィックスを付ける方法はありますか? たとえば、次の xml があります。
<node1 xmlns="www.test.com">
<node2>abc</node2>
<node3>
<node3_1>test1</node3_1>
</node3>
</node1>
私はそれを次のように変換したい:
<test:node1 xmlns test="www.test.com">
<test:node2>abc</test:node2>
<test:node3>
<test:node3_1>test1</test:node3_1>
</test:node3>
</test:node1>
これを行う簡単な方法はありますか?これまでのところ、私は試しました:
String messageString = message.getPayloadAsString();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
Document document = null;
try
{
builder = factory.newDocumentBuilder();
document = builder.parse( new InputSource( new StringReader( messageString) ) );
} catch (Exception e) {
e.printStackTrace();
}
XmlObject inboundMessageObject = XmlObject.Factory.parse(document);
XmlOptions xmlOptions = new XmlOptions();
Map<String, String> namespaceMap = new HashMap<String, String>();
namespaceMap.put("www.test.com", "test");
xmlOptions.setSaveSuggestedPrefixes(namespaceMap);
xmlObject.save(System.out, xmlOptions);
String prefixedXML = inboundMessageObject.xmlText(xmlOptions);
return prefixedXML;
私が見ているのは、prefixedXML 文字列が messageString 文字列と同じであることです。