代码之家  ›  专栏  ›  技术社区  ›  Tomas

DomImplementals在Java中以UTF-8序列化为字符串

  •  13
  • Tomas  · 技术社区  · 16 年前

    我需要将该字符串传递到生成的WS-client,该WS-client将使用该字符串,然后它应该是UTF-8。

    我用于创建字符串的代码:

    DOMImplementationRegistry domImplementationRegistry = DOMImplementationRegistry.
    DOMImplementationLS domImplementationLS = (DOMImplementationLS) REGISTRY.getDOMImplementation("LS");
    LSSerializer writer = domImplementationLS.createLSSerializer();
    String result = writer.writeToString(element);
    
    2 回复  |  直到 16 年前
        1
  •  18
  •   nhahtdh Pankaj Wadhwa    13 年前

    你仍然可以使用 DOMImplementationLS :

    DOMImplementationRegistry domImplementationRegistry = DOMImplementationRegistry.
    DOMImplementationLS domImplementationLS = (DOMImplementationLS)REGISTRY.getDOMImplementation("LS");
    LSOutput lsOutput =  domImplementationLS.createLSOutput();
    lsOutput.setEncoding("UTF-8");
    Writer stringWriter = new StringWriter();
    lsOutput.setCharacterStream(stringWriter);
    lsSerializer.write(doc, lsOutput);     
    String result = stringWriter.toString();
    
        2
  •  8
  •   skaffman    16 年前

    我发现将DOM序列化为字符串最灵活的方法是使用 javax.xml.transform

        Node node = ...
        StringWriter output = new StringWriter();
    
        Transformer transformer = TransformerFactory.newInstance().newTransformer();
        transformer.transform(new DOMSource(node), new StreamResult(output));
    
        String xml = output.toString();