1

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 文字列と同じであることです。

4

1 に答える 1

0

試す

xml = xml.replaceFirst("xmlns=", "xmlns:test=").replaceAll("<(/?)", "<$1test:");
于 2013-04-22T14:04:00.277 に答える