package com.lifz.server;
import java.io.File;
import java.io.IOException;
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.TransformerFactoryConfigurationError;
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.w3c.dom.Text;
import org.xml.sax.SAXException;
public class XmlServer {
public static void main(String[] args) {
String filePath = "D:\\Users\\lifazhu\\Desktop\\xmltest\\Teams.xml";
readXml(filePath);
}
private static void readXml(String filePath) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbf.newDocumentBuilder();
Document doc = dBuilder.parse(filePath);
doc.normalize();
Element root = doc.getDocumentElement();
addNode(doc); // 添加节点
if(doc != null) printNode(root); // 打印节点
createXml(doc) ; // 创建xml
deleteNode(doc);// 删除节点
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void createXml(Document doc) {
try {
TransformerFactory trFactory = TransformerFactory.newInstance();
Transformer tr = trFactory.newTransformer();
doc.normalize();
DOMSource source = new DOMSource(doc);
String outFile = "D:\\Users\\lifazhu\\Desktop\\xmltest\\OutTeams.xml";
StreamResult result = new StreamResult(new File(outFile));
tr.setOutputProperty(OutputKeys.ENCODING, "utf-8");
tr.setOutputProperty(OutputKeys.INDENT,"yes");
tr.transform(source, result);
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (TransformerFactoryConfigurationError e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
private static void printNode(Element root) {
NodeList children = root.getChildNodes();
NamedNodeMap attr = root.getAttributes();
int r = children.getLength();
if (attr != null) {
System.out.print("<" + root.getNodeName());
for (int i = 0; i < attr.getLength(); i++) {
System.out.println(" " + attr.item(i).getNodeName() + "=" + attr.item(i).getNodeValue());
}
System.out.print(">");
}else {
System.out.println("<"+root.getNodeName()+">");
}
if(root.hasChildNodes()){
for (int i = 0; i < r ;i++) {
if(children.item(i).getNodeType() == org.w3c.dom.Node.ELEMENT_NODE){
printNode((Element) children.item(i));
}else if(children.item(i).getNodeType() == org.w3c.dom.Node.TEXT_NODE){
System.out.println(children.item(i).getNodeValue());
}
}
System.out.println("</"+root.getNodeName() + ">");
}
}
private static void addNode(Document doc) {
Element root = doc.getDocumentElement();
Element newChild = doc.createElement("Team");
Element e_TeamName = doc.createElement("TeamName");
Text t_TeamName = doc.createTextNode("AC Milan2");
e_TeamName.appendChild(t_TeamName);
Element e_Countary = doc.createElement("Countary");
Text t_Countary = doc.createTextNode("Italy");
e_Countary.appendChild(t_Countary);
Element e_Member = doc.createElement("Member");
Text t_Member = doc.createTextNode("Pippo");
e_Member.appendChild(t_Member);
Attr attr_Age = doc.createAttribute("Age");
attr_Age.setNodeValue("32");
Attr attr_Sex = doc.createAttribute("Sex");
attr_Sex.setNodeValue("female");
e_Member.setAttributeNode(attr_Age);
e_Member.setAttributeNode(attr_Sex);
newChild.appendChild(e_TeamName);
newChild.appendChild(e_Countary);
newChild.appendChild(e_Member);
root.appendChild(newChild); // 添加节点
}
private static void deleteNode(Document doc) {
Element root = doc.getDocumentElement();
Node oldChild = root.getLastChild();
root.removeChild(oldChild);
System.out.println("开始打印删除节点后的Node");
printNode(root);
}
}
分享到:
相关推荐
JAVA XML 數據.docJAVA XML 數據.doc JAVA XML 數據.doc JAVA XML 數據.doc
Java XML编程指南 Java XML编程指南 Java XML编程指南
java xml编程指南
java xml编程指南的代码
Java XML电子书_5,全部发完,谢谢
java xml 编程技术资料 ,系统介绍 java 如何开发xml,
Java XML转JSON,只要一个积分!
使用dom4j封装的工具类,可以实现 xml to map ,map to xml 互相转换,带属性 不带属性,有根节点 和无根节点都可以转换,具体看测试代码
Java XML和Web服务宝典.part1
java XML解析方式实现自动生成word文档,文档中主要描述word模板的使用方法,文件中带有案例代码,可以方便理解
java xml数字签名工具类 拿来就能用
XML交互时方便进行XML格式转换,包含XML格式数据转换成list对象方法,参数拼接成XML方法
javaxml,xsl,html文件转换.pdf
Java XML文件操作类:Dom4jHelper源代码文件下载,实现的功能:解析url xml文档,遍历解析文档,遍历解析元素,解析文件,获得根元素,修改xml某节点的值,输出文件路径及文件名 如果输出文件为null,则默认为原xml文件,...
java xml.java操作XML文档,简单易用,快速生成
javaxml,xsl,html文件转换[定义].pdf
根据需要将xml格式的代码解析成LIST数组,可以解2层和3层的 根据需要传送不同节点数据就可以了。
非常好用的java 操作XML文件的架包