private String formatXml(String xml) { Document document = null;
XMLWriter xmlwriter = null;
StringWriter writer = new StringWriter();
//创建输出格式,制定输出xml的编码类型
OutputFormat format = OutputFormat.createCompactFormat();
format.setEncoding("GB2312"); try {
document = DocumentHelper.parseText(xml); xmlwriter = new XMLWriter(writer, format);
xmlwriter.write(document);
xmlwriter.close();
writer.close();
//返回编译后的字符串格式
return writer.getBuffer().toString(); //问题在这里,我的流都已经关闭了,但是我多次调用这个方法还是可以得到格式化之后的XML
} catch (Exception e) {
return null;
}
}现在修改为
private String formatXml(String xml) { Document document = null;
XMLWriter xmlwriter = null;
StringWriter writer = new StringWriter();
//创建输出格式,制定输出xml的编码类型
OutputFormat format = OutputFormat.createCompactFormat();
format.setEncoding("GB2312"); try {
document = DocumentHelper.parseText(xml); xmlwriter = new XMLWriter(writer, format);
xmlwriter.write(document);
String returnVlaue = writer.getBuffer().toString(); //流关闭之前把格式化之后的XML的值传给变量 xmlwriter.close();
writer.close();
//返回编译后的字符串格式
return returnVlaue; //返回返回值
} catch (Exception e) {
return null;
}
}
请问有人明白为什么上面的代码页可以正常使用么?
<?xml version="1.0" encoding="GB2312"?>
<VOU><SUM><VOUCHER_PKID>CZ38</VOUCHER_PKID><TOTAL_AMOUNT>1800000</TOTAL_AMOUNT>
System.out.println(returnVlaue); xmlwriter.close();
writer.close();
//返回编译后的字符串格式
return returnVlaue;
可是在流关闭之后怎么取啊,writer.close();