7

このコードを使用してcom.w3c.dom.Documentからを作成しています:String

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new InputSource(new StringReader("<a><b id="5"/></a>")));

ときSystem.out.println(xmlToString(document))、私はこれを取得します:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><a><b id="5"/></a>

すべて問題ありませんが、XML に宣言を含めたくありません<?xml version="1.0" encoding="UTF-8" standalone="no"?>。秘密鍵で署名し、soap エンベロープに埋め込む必要があるためです。

4

1 に答える 1

12

a を使用して、プロパティを次のようTransformerに設定できます。OutputKeys.OMIT_XML_DECLARATION"yes"

Transformer t = TransformerFactory.newInstance().newTransformer();
t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
StringWriter sw = new StringWriter();
t.transform(new DOMSource(doc), new StreamResult(sw));

次のこともできることに注意してください。

  • が本当に必要ない場合は、 a のStreamSource代わりに aを使用して、 をトランスに直接DOMSource供給します。StringDocument
  • を出力したい場合は、 a のDOMResult代わりに aを使用します。StreamResultDocument
于 2013-02-07T12:02:48.427 に答える