DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
String[] city = {"深圳","潮汕","阳春","茂名","清远","河源"};
Element allAreaNode = document.createElement("allArea");
for(int i=0;i<city.length;i++){
Element areaNode = document.createElement("area");
areaNode.setAttribute("name","city");
areaNode.appendChild(document.createTextNode(city[i]));
allAreaNode.appendChild(areaNode);
}
document.appendChild(allAreaNode);
//System.out.println(allAreaNode.hasChildNodes());
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(OutputKeys.ENCODING,"GBK");
DOMSource source = new DOMSource(document);
ByteArrayOutputStream bos = new ByteArrayOutputStream();//要转为这个格式才能输出
StreamResult result = new StreamResult(bos);
t.transform(source,result);
System.out.println(bos);
为什么
ByteArrayOutputStream bos = new ByteArrayOutputStream();//要转为这个格式才能输出
一定要转为这种格式才能输出??能不能转换其它的?我测试了下,转为DOMResult对象是不行的
不知道为什么??
其实我的意思是既然source为什么DOMSource类的了,为什么result 就不是DOMResult的呢??
那样多好记啊,不要笑哈只是感觉学得东西好多,感觉有点塞不下脑袋了
//转换器工厂
TransformerFactory tf = TransformerFactory.newInstance();
//转换器
Transformer t = tf.newTransformer();
//设置输出属性
t.setOutputProperty(OutputKeys.ENCODING,"UTF-8");
t.setOutputProperty(OutputKeys.INDENT,"yes");
//指定XML实例
DOMSource dom = new DOMSource(document);
//指定输出XML文件
StreamResult sr = new StreamResult(new File("books.xml"));
//输出文件
t.transform(dom, sr);
System.out.println("XML文件 已创建 !");我是这样写的