Java org.w3c.dom.lsのドキュメントを読むと、要素としてのみ見えるように、Javaネイティブ文字列エンコーディングUTF-16でStringにシリアル化できます。私はUTF-8文字列を作成する必要がありますが、エスケープされているかどうかは分かりませんが、UTF-16文字列になります。誰でもこれを回避する考えがありますか? Stringを消費する生成されたWSクライアントに渡す文字列が必要です。次に、UTF-8にする必要があります。DOMImplementationLSは、JavaのUTF-8でStringにシリアル化します。
私は、文字列を作成するために使用するコードは:
Node node = ...
StringWriter output = new StringWriter();
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.transform(new DOMSource(node), new StreamResult(output));
String xml = output.toString();
それは特にありません。
DOMImplementationRegistry domImplementationRegistry = DOMImplementationRegistry.
DOMImplementationLS domImplementationLS = (DOMImplementationLS) REGISTRY.getDOMImplementation("LS");
LSSerializer writer = domImplementationLS.createLSSerializer();
String result = writer.writeToString(element);
@Tomas - UTF-8 JavaのStringのようなものはありません。私は、UTF-8でエンコードされたバイトをchar型に強制して涙を浮かべようとする試みを期待しています。 – McDowell