繁体   English   中英

如何删除xml文档中的独立属性声明?

[英]How to remove standalone attribute declaration in xml document?

我目前正在使用Java创建一个xml,然后将其转换为String。 xml声明如下:

DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
Document doc = docBuilder.newDocument();
doc.setXmlVersion("1.0");

为了将文档转换为String,我包含以下声明:

TransformerFactory transfac = TransformerFactory.newInstance();
Transformer trans = transfac.newTransformer();
trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
trans.setOutputProperty(OutputKeys.VERSION, "1.0");
trans.setOutputProperty(OutputKeys.ENCODING,"UTF-8");
trans.setOutputProperty(OutputKeys.INDENT, "yes");

然后我做了转型:

StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);
DOMSource source = new DOMSource(doc);
trans.transform(source, result);
String xmlString = sw.toString();

问题是在XML声明属性中,包含独立属性,我不希望这样,但我希望显示版本和编码属性:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

有没有可以指定的财产?

根据我的阅读,您可以通过在创建DOMSource之前在Document上调用以下方法来完成此操作:

doc.setXmlStandalone(true); //before creating the DOMSource

如果将其设置为false ,则无法控制它是否显示 所以在Document上的setXmlStandalone(true) 在变换器中如果你想要输出使用OutputKeys你需要什么“是”或“否”。 如果你在Document上设置了setXmlStandalone(false) ,无论你在Transformer设置了什么(如果你设置),你的输出都将是standalone="no"

阅读此论坛中的主题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM