Java 将元素转换为不带<;的XML字符串;?xml版本=…>;前缀

Java 将元素转换为不带<;的XML字符串;?xml版本=…>;前缀,java,xml,Java,Xml,我有一个遗留代码,其中包含很多类似的org.w3c.dom.Element生成 Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); Element exampleElement = doc.createElement("example"); exampleElement.appendChild(... 如何将exampleElement转换为那样的XML字符串?(允许使用

我有一个遗留代码,其中包含很多类似的
org.w3c.dom.Element
生成

Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Element exampleElement = doc.createElement("example");
exampleElement.appendChild(...
如何将
exampleElement
转换为那样的XML字符串?(允许使用任何其他库)


...
不是那样

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

...
有一些选项:

  • 使用XSL转换器,使用指令“省略xml声明”应用更改

    Transformer Transformer=TransformerFactory.newInstance().newTransformer(); setOutputProperty(“省略xml声明”、“是”); transform(新的DOMSource(文档)、新的StreamResult(流))

  • 使用字符串替换过程将第一行替换为正则表达式或使用indexOf(“?>”)

  • 根据w3c文档在JDK中的实现,可以在文档的DOMConfiguration中使用一些选项,如

    document.getDomConfig().setParameter(“规范形式”,true)


  • 虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请编辑您的答案,添加解释,并说明适用的限制和假设。
    <?xml version="1.0" encoding="UTF-8"?>
    <example>
      ...
    </example>
    
    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();