package lianxi;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
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;
public class Demo {
private static Document docu;
public static void main(String[] args) throws Exception {
read();
delete();
show();
save();
}
private static void read() throws Exception {
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
docu =builder.parse("src/na.xml");
}
private static void show(){
NodeList brad=docu.getElementsByTagName("学生");
for(int i=0;i<brad.getLength();i++){
Node nod=(Node)brad.item(i);
Element ele=(Element)nod;
String str=ele.getTagName();
NodeList types=ele.getChildNodes();
for(int j=0;j<types.getLength();j++){
Node node=(Node)types.item(j);
if(node.getNodeType()==Node.ELEMENT_NODE){
Element elemen=(Element)node;
String str1=elemen.getTextContent();
System.out.println(elemen.getNodeName()+str1);
}
}
}
}
private static void save() throws Exception{
TransformerFactory factory=TransformerFactory.newInstance();
factory.setAttribute("indent-number", 4);
Transformer former=factory.newTransformer();
former.setOutputProperty(OutputKeys.INDENT,"YES");
DOMSource source=new DOMSource(docu);
StreamResult result=new StreamResult(new OutputStreamWriter(new FileOutputStream("src/na.xml"),"utf-8"));
former.transform(source, result);
}
private static void add() throws Exception{
Element element=docu.createElement("学生");
element.setAttribute("年级","大四");
docu.getElementsByTagName("班级").item(0).appendChild(element);
save();
}
private static void delete() throws Exception{
NodeList brands=docu.getElementsByTagName("学生");
Node brand=brands.item(1);
Element ele=(Element)brand;
ele.getParentNode().removeChild(ele);
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200117161906468.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTAwMzIwNg==,size_16,color_FFFFFF,t_70)
package cn.xml;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
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;
public class Xmlfactor {
private Document dd=null;
public static void main(String[] args) {
Xmlfactor ss=new Xmlfactor();
try {
ss.GetDocument();
ss.delete();
ss.show();
} catch (Exception e) {
e.printStackTrace();
}
}
private void GetDocument() throws Exception{
DocumentBuilderFactory doc= DocumentBuilderFactory.newInstance();
DocumentBuilder builder=doc.newDocumentBuilder();
dd=builder.parse("First.xml");
}
private void show(){
NodeList brand=dd.getElementsByTagName("size");
for(int i=0;i<brand.getLength();i++){
Node node=brand.item(i);
Element elebrand=(Element)node;
String attr=elebrand.getAttribute("aa");
NodeList types=elebrand.getChildNodes();
System.out.println(attr);
for(int j=0;j<types.getLength();j++){
Node typenode=types.item(j);
if(typenode.getNodeType()==Node.ELEMENT_NODE){
Element eleType=(Element)typenode;
String type=eleType.getAttribute("name");
System.out.println(attr+type);
}
}
}
}
private void save() throws Exception{
TransformerFactory factor=TransformerFactory.newInstance();
factor.setAttribute("indent-number", 4);
Transformer tran=factor.newTransformer();
tran.setOutputProperty(OutputKeys.INDENT, "YES");
DOMSource souce=new DOMSource(dd);
StreamResult result=new StreamResult(new OutputStreamWriter(new FileOutputStream("First.xml"),"utf-8"));
tran.transform(souce, result);
}
private void add() throws Exception{
Element element=dd.createElement("size");
element.setAttribute("aa", "asdasd");
Element ele1=dd.createElement("Type");
ele1.setAttribute("name", "小米9");
element.appendChild(ele1);
dd.getElementsByTagName("cloth").item(1).appendChild(element);
save();
}
private void update() throws Exception{
NodeList brands=dd.getElementsByTagName("size");
for(int i=0;i<brands.getLength();i++){
Node brand=brands.item(i);
Element ele=(Element)brand;
ele.setAttribute("id",i+"");
}
save();
}
private void delete() throws Exception{
NodeList brands=dd.getElementsByTagName("Type");
for(int i=0;i<brands.getLength();i++){
Node brand=brands.item(i);
Element ele=(Element)brand;
if(ele.getAttribute("name").equals("小米9")){
ele.getParentNode().removeChild(ele);
}
}
save();
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200117161938554.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTAwMzIwNg==,size_16,color_FFFFFF,t_70)