我目前正在使用Java创建一个xml,然后将其转换为String.xml声明如下:
DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
Document doc = docBuilder.newDocument();
doc.setXmlVersion("1.0");
Run Code Online (Sandbox Code Playgroud)
为了将文档转换为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");
Run Code Online (Sandbox Code Playgroud)
然后我做了转型:
StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);
DOMSource source = new DOMSource(doc);
trans.transform(source, result);
String xmlString = sw.toString();
Run Code Online (Sandbox Code Playgroud)
问题是在XML声明属性中,包含独立属性,我不希望这样,但我希望显示版本和编码属性:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
Run Code Online (Sandbox Code Playgroud)
有没有可以指定的财产?
Ara*_*ram 46
根据我的阅读,您可以Document在创建以下内容之前调用以下方法来执行此操作DOMSource:
doc.setXmlStandalone(true); //before creating the DOMSource
Run Code Online (Sandbox Code Playgroud)
如果设置它false ,则无法控制它出现与否.所以setXmlStandalone(true)对Document.在变压器中如果你想要输出使用你需要的OutputKeys"是"或"否".如果你setXmlStandalone(false)对Document你的输出将永远standalone="no"无论你设置什么(如果设置)的Transformer.
阅读此论坛中的主题
| 归档时间: |
|
| 查看次数: |
27280 次 |
| 最近记录: |