读取 生成 格式化 XML 文件
2012-02-22 11:21
190 查看
package xml;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
public class XMLOperator {
public static Document createDoc() throws ParserConfigurationException{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
return doc;
}
public static void createXMLFile(String fileName,Document doc) throws ParserConfigurationException, TransformerFactoryConfigurationError, TransformerException, IOException{
File f = new File(fileName);
OutputFormat format = new OutputFormat(doc);
format.setIndenting(true);
format.setIndent(2);
Writer out = new FileWriter(f);
XMLSerializer serializer = new XMLSerializer(out,format);
serializer.serialize(doc);
//out.flush();
out.close();
/*此注释部分为仅使用sun jdk 生成xml文件方法 在生成文件时 根元素与xml声明部分为一行
例如<?xml version="1.0" encoding="UTF-8"?> <root>
<child/>
</root>
没有正确格式化
在使用ibm jdk 中有org.apache.xml 的相关操作类可以格式化*/
/*
File f = new File(fileName);
StreamResult sr = new StreamResult(f);
Transformer tf = TransformerFactory.newInstance().newTransformer();
Source s = new DOMSource(doc);
tf.setOutputProperty(OutputKeys.INDENT, "yes");
tf.transform(s, sr);*/
}
public static Document loadXMFile(String fileName) throws ParserConfigurationException, SAXException, IOException{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
return db.parse(fileName);
}
public static String parseString(Document doc) throws TransformerFactoryConfigurationError, TransformerException, UnsupportedEncodingException{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Transformer tf = TransformerFactory.newInstance().newTransformer();
Source s = new DOMSource(doc);
Result result = new StreamResult(baos);
tf.transform(s, result);
return new String(baos.toByteArray(),"UTF-8");
}
public static Document parseDocument(String XMLStr) throws ParserConfigurationException, SAXException, IOException{
ByteArrayInputStream bais = new ByteArrayInputStream(XMLStr.getBytes("UTF-8"));
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
return db.parse(bais);
}
public static void main(String[] args) throws Error, Exception {
Document doc = createDoc();
Element root = doc.createElement("root");
Element childNode1 = doc.createElement("child1");
Element childNode2 = doc.createElement("child2");
childNode1.setAttribute("name", "nameValue");
childNode1.setAttribute("id", "idValue");
childNode1.appendChild(childNode2);
root.appendChild(childNode1);
doc.appendChild(root);
createXMLFile("test2.xml",doc) ;
}
}
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
public class XMLOperator {
public static Document createDoc() throws ParserConfigurationException{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
return doc;
}
public static void createXMLFile(String fileName,Document doc) throws ParserConfigurationException, TransformerFactoryConfigurationError, TransformerException, IOException{
File f = new File(fileName);
OutputFormat format = new OutputFormat(doc);
format.setIndenting(true);
format.setIndent(2);
Writer out = new FileWriter(f);
XMLSerializer serializer = new XMLSerializer(out,format);
serializer.serialize(doc);
//out.flush();
out.close();
/*此注释部分为仅使用sun jdk 生成xml文件方法 在生成文件时 根元素与xml声明部分为一行
例如<?xml version="1.0" encoding="UTF-8"?> <root>
<child/>
</root>
没有正确格式化
在使用ibm jdk 中有org.apache.xml 的相关操作类可以格式化*/
/*
File f = new File(fileName);
StreamResult sr = new StreamResult(f);
Transformer tf = TransformerFactory.newInstance().newTransformer();
Source s = new DOMSource(doc);
tf.setOutputProperty(OutputKeys.INDENT, "yes");
tf.transform(s, sr);*/
}
public static Document loadXMFile(String fileName) throws ParserConfigurationException, SAXException, IOException{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
return db.parse(fileName);
}
public static String parseString(Document doc) throws TransformerFactoryConfigurationError, TransformerException, UnsupportedEncodingException{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Transformer tf = TransformerFactory.newInstance().newTransformer();
Source s = new DOMSource(doc);
Result result = new StreamResult(baos);
tf.transform(s, result);
return new String(baos.toByteArray(),"UTF-8");
}
public static Document parseDocument(String XMLStr) throws ParserConfigurationException, SAXException, IOException{
ByteArrayInputStream bais = new ByteArrayInputStream(XMLStr.getBytes("UTF-8"));
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
return db.parse(bais);
}
public static void main(String[] args) throws Error, Exception {
Document doc = createDoc();
Element root = doc.createElement("root");
Element childNode1 = doc.createElement("child1");
Element childNode2 = doc.createElement("child2");
childNode1.setAttribute("name", "nameValue");
childNode1.setAttribute("id", "idValue");
childNode1.appendChild(childNode2);
root.appendChild(childNode1);
doc.appendChild(root);
createXMLFile("test2.xml",doc) ;
}
}
相关文章推荐
- jsp读取大对象CLOB并生成xml文件示例
- Java读取excel文件生成xml文档和JSON文档
- 使用Pull解析器生成XML文件和读取xml文件
- JXTree对象,读取外部xml文件数据,生成树的函数
- dom4j处理xml文件,读取xml字符串,格式化xml文件
- 读取XML中的信息GDAL生成shp文件
- [VB.NET]vb.net如何读取数据库生成指定格式的xml文件
- DOM模型的XML文件生成读取
- js生成xml文件及js读取xml文件,获得xml节点子节点的个数(同Extjs中树获得子结点个数)
- c#使用Dataset读取XML文件动态生成菜单的方法
- Java读取一个xml文件并生成相应的类
- JXTree对象,读取外部xml文件数据,生成树的函数
- js生成xml文件及js读取xml文件,获得xml节点子节点的个数(同Extjs中树获得子结点个数)
- 用VBA读取Excel表格输出到格式化的xml文件中
- 使用Pull解析器读取XML文件和生成XML文件
- C# 选择文件夹,读取文件夹下文件和文件夹生成XML
- jsp读取大对象CLOB并生成xml文件示例
- android开发步步为营之24:milliondollars游戏技术要点代码生成控件和读取xml文件
- jquery读取XML 生成页面文件
- Android开发之Pull解析读取和生成XML文件