package
test;
import
java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
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.xml.sax.SAXException;
import com.xml.XmlDocument;
/**
*
* @author hongliang.dinghl DOM生成与解析XML文档
*/
public class Test_2 implements XmlDocument {
private Document document;
private String fileName;
public void init() {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
this .document = builder.newDocument();
} catch (ParserConfigurationException e) {
System.out.println(e.getMessage());
}
}
/*
* 创建XML
*/
public void createXml(String fileName) {
Element root = this .document.createElement( " employees " );
this .document.appendChild(root);
Element employee = this .document.createElement( " employee " );
Element name = this .document.createElement( " name " );
name.appendChild( this .document.createTextNode( " 张三 " ));
employee.appendChild(name);
Element sex = this .document.createElement( " sex " );
sex.appendChild( this .document.createTextNode( " m " ));
employee.appendChild(sex);
Element age = this .document.createElement( " age " );
age.appendChild( this .document.createTextNode( " 30 " ));
employee.appendChild(age);
root.appendChild(employee);
TransformerFactory tf = TransformerFactory.newInstance();
try {
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING, " utf-8 " );
transformer.setOutputProperty(OutputKeys.INDENT, " yes " );
PrintWriter pw = new PrintWriter( new FileOutputStream(fileName));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
System.out.println( " 生成XML文件成功! " );
} catch (TransformerConfigurationException e) {
System.out.println(e.getMessage());
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} catch (TransformerException e) {
System.out.println(e.getMessage());
}
}
/**
* 解析XML
*/
public void parserXml(String fileName) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputStream is = new FileInputStream(fileName);
Document doc = db.parse(is);
Element root = doc.getDocumentElement();
NodeList employees = root.getChildNodes();
if (employees != null ){
for ( int i = 0 ; i < employees.getLength(); i ++ ){
Node employee = employees.item(i);
if (employee.getNodeType() == Node.ELEMENT_NODE){
for (Node node = employee.getFirstChild(); node != null ; node = node.getNextSibling()){
if (node.getNodeType() == Node.ELEMENT_NODE){
// if(node.getNodeName().equals("name")){
// String name=node.getFirstChild().getNodeValue();
// System.out.println(node.getNodeName()+":"+ name);
// }
// if(node.getNodeName().equals("sex")){
// String sex=node.getFirstChild().getNodeValue();
// System.out.println(node.getNodeName()+":"+ sex);
// }
// if(node.getNodeName().equals("age")){
// String age = node.getFirstChild().getNodeValue();
// System.out.println(node.getNodeName()+":"+ age);
// }
System.out.println(node.getFirstChild().getNodeValue());
}
}
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
Test_2 t2 = new Test_2();
t2.parserXml( " myTest2.xml " );
}
}
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
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.xml.sax.SAXException;
import com.xml.XmlDocument;
/**
*
* @author hongliang.dinghl DOM生成与解析XML文档
*/
public class Test_2 implements XmlDocument {
private Document document;
private String fileName;
public void init() {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
this .document = builder.newDocument();
} catch (ParserConfigurationException e) {
System.out.println(e.getMessage());
}
}
/*
* 创建XML
*/
public void createXml(String fileName) {
Element root = this .document.createElement( " employees " );
this .document.appendChild(root);
Element employee = this .document.createElement( " employee " );
Element name = this .document.createElement( " name " );
name.appendChild( this .document.createTextNode( " 张三 " ));
employee.appendChild(name);
Element sex = this .document.createElement( " sex " );
sex.appendChild( this .document.createTextNode( " m " ));
employee.appendChild(sex);
Element age = this .document.createElement( " age " );
age.appendChild( this .document.createTextNode( " 30 " ));
employee.appendChild(age);
root.appendChild(employee);
TransformerFactory tf = TransformerFactory.newInstance();
try {
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING, " utf-8 " );
transformer.setOutputProperty(OutputKeys.INDENT, " yes " );
PrintWriter pw = new PrintWriter( new FileOutputStream(fileName));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
System.out.println( " 生成XML文件成功! " );
} catch (TransformerConfigurationException e) {
System.out.println(e.getMessage());
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} catch (TransformerException e) {
System.out.println(e.getMessage());
}
}
/**
* 解析XML
*/
public void parserXml(String fileName) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputStream is = new FileInputStream(fileName);
Document doc = db.parse(is);
Element root = doc.getDocumentElement();
NodeList employees = root.getChildNodes();
if (employees != null ){
for ( int i = 0 ; i < employees.getLength(); i ++ ){
Node employee = employees.item(i);
if (employee.getNodeType() == Node.ELEMENT_NODE){
for (Node node = employee.getFirstChild(); node != null ; node = node.getNextSibling()){
if (node.getNodeType() == Node.ELEMENT_NODE){
// if(node.getNodeName().equals("name")){
// String name=node.getFirstChild().getNodeValue();
// System.out.println(node.getNodeName()+":"+ name);
// }
// if(node.getNodeName().equals("sex")){
// String sex=node.getFirstChild().getNodeValue();
// System.out.println(node.getNodeName()+":"+ sex);
// }
// if(node.getNodeName().equals("age")){
// String age = node.getFirstChild().getNodeValue();
// System.out.println(node.getNodeName()+":"+ age);
// }
System.out.println(node.getFirstChild().getNodeValue());
}
}
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
Test_2 t2 = new Test_2();
t2.parserXml( " myTest2.xml " );
}
}