最近在学习xml的dom编程,使用的是java
jdk中的类进行编程,就在编程中,发现在生成新的xml文件是发现了整个生成的乱码了,但先前看别人写的,基本上没什么差别,但并未乱码,这样很纠结了,在网上查了一下,据说有这样一个属性,具体如下
package com.hfc.xml1;
import java.io.File;
import java.io.FileOutputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
public class Work1 {
public Document init(String
s){
try{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse(new File(s));;
return document;
}catch(Exception e){
System.out.println("解析初始化出错了.....");
e.printStackTrace();
return null;
}
}
public void
transform(Document document,String path){
TransformerFactory
transFactory=TransformerFactory.newInstance();
Transformer
transformer;
try {
transformer =
transFactory.newTransformer();
transformer.setOutputProperty("encoding","GB2312");//这句话可以设置生成后的不乱码 DOMSource domSource=new
DOMSource(document);
File file=new File(path);
FileOutputStream out=new FileOutputStream(file);
StreamResult xmlResult=new StreamResult(out);
transformer.transform(domSource,xmlResult);
} catch (Exception e) {
// TODO Auto-generated catch
block
e.printStackTrace();
} }
public static void
main(String[] args) {
//后面的省略了
}