这里写代码片
package com.tangyuedi.xml.dom;
public interface IHolderXML {
void createXMLByDOM();
void parseXMLByDOM();
}
————————————————————————————————————————
package com.tangyuedi.xml.dom;
import java.io.Serializable;
public class EmployeeEntity implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private int id;
private String name;
private String age;
private String sex;
public EmployeeEntity() {
super();
}
public EmployeeEntity(int id, String name, String age, String sex) {
super();
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return super.toString();
}
}
——————————————————————————————————————————
package com.tangyuedi.xml.dom;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
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.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class XMLHolderImpl implements IHolderXML{
private Document mDocument;
private static XMLHolderImpl instance;
private static DocumentBuilder mDocumentBuilder;
private void DocumentBuilderInit(){
DocumentBuilderFactory mFactory = DocumentBuilderFactory.newInstance();
try {
mDocumentBuilder = mFactory.newDocumentBuilder();
this.mDocument = mDocumentBuilder.newDocument();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
}
private XMLHolderImpl(){
DocumentBuilderInit();
}
public static XMLHolderImpl newInstance(){
if (instance == null){
synchronized(XMLHolderImpl.class){
if(instance == null){
instance = new XMLHolderImpl();
}
}
}
return instance;
}
public void createXMLByDOM() {
Element rootElement = mDocument.createElement("root");
mDocument.appendChild(rootElement);
Element employeeElement = mDocument.createElement("employee");
Attr attributElement = mDocument.createAttribute("id");
attributElement.appendChild(mDocument.createTextNode("1"));
employeeElement.setAttributeNode(attributElement);
Element nameElement = mDocument.createElement("name");
nameElement.appendChild(mDocument.createTextNode("张三"));
Element ageElement = mDocument.createElement("age");
ageElement.appendChild(mDocument.createTextNode("26"));
Element sexElement = mDocument.createElement("sex");
sexElement.appendChild(mDocument.createTextNode("男"));
employeeElement.appendChild(nameElement);
employeeElement.appendChild(ageElement);
employeeElement.appendChild(sexElement);
rootElement.appendChild(employeeElement);
Element employeeElement1 = mDocument.createElement("employee");
Attr attributElement1 = mDocument.createAttribute("id");
attributElement1.appendChild(mDocument.createTextNode("2"));
employeeElement1.setAttributeNode(attributElement1);
Element nameElement1 = mDocument.createElement("name");
nameElement1.appendChild(mDocument.createTextNode("李四"));
Element ageElement1 = mDocument.createElement("age");
ageElement1.appendChild(mDocument.createTextNode("27"));
Element sexElement1 = mDocument.createElement("sex");
sexElement1.appendChild(mDocument.createTextNode("男"));
employeeElement1.appendChild(nameElement1);
employeeElement1.appendChild(ageElement1);
employeeElement1.appendChild(sexElement1);
rootElement.appendChild(employeeElement1);
TransformerFactory tf = TransformerFactory.newInstance();
try {
Transformer transformer = tf.newTransformer();
DOMSource mDomSource = new DOMSource(mDocument);
transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
PrintWriter pw = new PrintWriter(new FileOutputStream("F:/tangyuedi.xml"));
StreamResult result = new StreamResult(pw);
transformer.transform(mDomSource, result);
System.out.println("生成XML文件成功!");
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
public void print(String xmlFile){
System.out.println();
System.out.print(xmlFile);
}
public String obtainXMLFileContent(){
File mFile = new File("F:/tangyuedi.xml");
BufferedReader bufferedReader = null;
String line;
StringBuffer buffer = new StringBuffer();
FileInputStream fileInputStream = null;
InputStream in = null;
FileInputStream mFileInputStream = null;
try {
mFileInputStream = new FileInputStream(mFile);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
InputStreamReader inputStreamReader = new InputStreamReader(mFileInputStream);
bufferedReader = new BufferedReader(inputStreamReader);
try {
while ((line = bufferedReader.readLine()) != null){
buffer.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bufferedReader.close();
} catch (Exception e){
e.printStackTrace();
}
}
return buffer.toString();
}
public void parseXMLByDOM() {
ArrayList<EmployeeEntity> entityList = new ArrayList<EmployeeEntity>();
try {
Document mDoc = mDocumentBuilder.parse(new File("F:/tangyuedi.xml"));
Element rootElement = mDoc.getDocumentElement();
System.out.println("_rootElement >>> " + rootElement.getTagName());
NodeList nodeList = rootElement.getElementsByTagName("employee");
System.out.println("_nodeList >>> " + nodeList.getLength());
for (int i = 0; i < nodeList.getLength(); i++){
System.out.println("_getNodeName >>> " + nodeList.item(i).getNodeName()
+ " _getNodeValue >>> " + nodeList.item(i).getNodeValue()
+ " _getNodeType >>> " + nodeList.item(i).getNodeType());
EmployeeEntity employeeEntity = new EmployeeEntity();
Node node = nodeList.item(i);
System.out.println("_node >>> " + node.getNodeName());
NamedNodeMap attr = node.getAttributes();
if (attr != null){
for (int ii = 0; ii < attr.getLength(); ii++){
System.out.println("_attr.item(ii).getNodeName() >>> " + attr.item(ii).getNodeName());
int id = Integer.parseInt(attr.item(ii).getNodeValue());
employeeEntity.setId(id);
}
}
NodeList mNodeList = node.getChildNodes();
System.out.println("_mNodeList >>> " + mNodeList.getLength());
for (int iii = 0; iii < mNodeList.getLength(); iii++){
if (mNodeList.item(iii).getNodeName().equals("name")){
employeeEntity.setName(mNodeList.item(iii).getTextContent());
}
if (mNodeList.item(iii).getNodeName().equals("age")){
employeeEntity.setAge(mNodeList.item(iii).getTextContent());
}
if (mNodeList.item(iii).getNodeName().equals("sex")){
System.out.println("_getNodeValue() >>> " + mNodeList.item(iii).getNodeValue());
employeeEntity.setSex(mNodeList.item(iii).getTextContent());
}
}
entityList.add(employeeEntity);
}
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
printParseXML(entityList);
}
public void printParseXML(ArrayList<EmployeeEntity> entityList){
Iterator<EmployeeEntity> iterator = entityList.iterator();
while (iterator.hasNext()){
EmployeeEntity employeeEntity = (EmployeeEntity) iterator.next();
System.out.println("Employee " + "/ " + "_id >>> " + employeeEntity.getId()
+ " _age >>> " + employeeEntity.getAge()
+ " _name >>> " + employeeEntity.getName()
+ " _sex >>> " + employeeEntity.getSex());
}
}
}