将元素转换为XML字符串,不带<! - ?xml version = ...-->前缀

时间:2015-10-08 09:47:04

标签: java xml

我有一个遗留代码,其代码很多org.w3c.dom.Element

Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Element exampleElement = doc.createElement("example");
exampleElement.appendChild(...

如何将exampleElement转换为XML字符串? (允许任何其他库)

<example>
  ...
</example>

不是那样

<?xml version="1.0" encoding="UTF-8"?>
<example>
  ...
</example>

2 个答案:

答案 0 :(得分:0)

有一些选择:

  1. 使用XSL Transformer使用指令 omit-xml-declaration

    应用更改

    Transformer transformer = TransformerFactory.newInstance()。newTransformer(); transformer.setOutputProperty(&#34; omit-xml-declaration&#34;,&#34; yes&#34;); transformer.transform(新的DOMSource(文档),新的StreamResult(流));

  2. 使用字符串替换流程将第一行替换为正则表达式或使用 indexOf(&#34;?&gt;&#34;)

  3. 取决于所使用的JDK中w3c Document的实现,可以使用文档的DOMConfiguration中的一些选项,如canonical-form

    document.getDomConfig()的setParameter(&#34;典型形式&#34;,TRUE);

答案 1 :(得分:0)

Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OMIT_XML_DECLARATION, "yes");
Writer writer = new StringWriter();
transformer.transform(new DOMSource(node), new StreamResult(writer));
return writer.toString();