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"?>声明,因为我必须用私钥签名并嵌入到肥皂信封中。

4

1 回答 1

12

您可以使用 aTransformer并将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));

请注意,您还可以:

  • 如果您StreamSource真的DOMSource不需要.StringDocument
  • 如果您想输出 a ,请使用 aDOMResult而不是a 。StreamResultDocument
于 2013-02-07T12:02:48.427 回答