加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – com.w3c.dom.Document没有<?xml version =“1.0”en

发布时间:2020-12-14 05:10:05 所属栏目:Java 来源:网络整理
导读:我正在使用以下代码从String创建com.w3c.dom.Document: DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();DocumentBuilder docBuilder = docFactory.newDocumentBuilder();Document doc = docBuilder.parse(new InputSource(new
我正在使用以下代码从String创建com.w3c.dom.Document:
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(文档)),我得到这个:

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

一切都还可以,但我不希望XML有<?xml version =“1.0”encoding =“UTF-8”standalone =“no”?>声明,因为我必须用私钥签名并嵌入肥皂信封.

解决方法

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

请注意您还可以:

>如果您不需要Document,请使用StreamSource而不是DOMSource将String直接提供给转换器.
>如果要输出文档,请使用DOMResult而不是StreamResult.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读