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的呢??
那样多好记啊,不要笑哈只是感觉学得东西好多,感觉有点塞不下脑袋了

解决方案 »

  1.   

    ByteArrayOutputStream,看下这个类的api就明白了,用于一次读写。
      

  2.   


    //转换器工厂
    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文件 已创建 !");我是这样写的