时间:2015-05-11 09:15:41

标签: java xml

{{11}} 30163741 {{22}} {{33}} 删除以下是我的代码示例。

OutputStream outs = response.getOutputStream();
property.put("xyz", serverpath);
property.put("*abc", serverIPAddress);

property.storeToXML(outs, null, "UTF-8");           
outs.close();

我不需要DOCTYPE声明。如何删除它?

当前输出为:

enter image description here

3 个答案:

答案 0 :(得分:3)

与大多数Properties类一样,您无法更改它。相反,捕获生成的XML字符串,对其进行修改,然后手动将其发送出去。

property.put("xyz", "serverpath");
property.put("*abc", "serverIPAddress");
ByteArrayOutputStream out = new ByteArrayOutputStream();
property.storeToXML(out, null, "UTF-8");
String str = out.toString("UTF-8").replaceAll("<!DOCTYPE[^>]*>\n", "");
byte[] bytes = str.getBytes("UTF-8");
OutputStream outs = response.getOutputStream();
outs.write(bytes, 0, bytes.length);
outs.close();

FYI ByteArrayOutputStream是一个内存输出流,可用于捕获和检索写入的内容。由于Properties对象实际上不会有很多条目,因此这种方法不会造成内存消耗风险。

答案 1 :(得分:1)

Doctype是一个标题组件,对于大多数用途来说它并不重要。

如果您确实要删除它,则应将结果写入StringWriter或ByteArrayOutputStream并删除不需要的内容。

答案 2 :(得分:0)

如果您已经拥有字符串并想删除它,那么您可以使用此

str.replaceAll("<!DOCTYPE((.|\n|\r)*?)\">", "");

从这里挑选:http://www.gregbugaj.com/?p=270