1 packagecom.xml.zh;2 import javax.xml.parsers.*;3 importjavax.xml.transform.Transformer;4 importjavax.xml.transform.TransformerConfigurationException;5 importjavax.xml.transform.TransformerFactory;6 importjavax.xml.transform.dom.DOMSource;7 importjavax.xml.transform.stream.StreamResult;8
9 import org.w3c.dom.*;10 public classXmlTest1{11
12 /**
13 * 使用dom技术对xml进行解析14 *@paramargs15 * 从这里我发现: Node 是 Element, document的父类, Element类主要是16 * 增加,删除,修改,返回 等。document 创建 xml中的对象17 * 例:document.getElementById();方法。18 */
19 public static void main(String[] args) throwsException{20 //TODO Auto-generated method stub21 //创建一个documentBuilderFactory实例
22 DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();23 //创建一个documentBuilder
24 DocumentBuilder db=dbf.newDocumentBuilder();25 //指定是那个xml文件
26 Document document = db.parse("src/class.xml");27 //list(document);28 //red(document);
29 update(document);30 upda(document);31 }32 //修改
33 public static voidupdate(Document doc){34 //修改元素内容
35 Element ele = (Element)doc.getElementsByTagName("mingzi").item(0);36 ele.setTextContent("xiaohai");37
38 //修改属性
39 Element element = (Element)doc.getElementsByTagName("xuesheng").item(0);40 element.setAttribute("sex", "nv");41 }42
43 //删除学生
44 public static voiddel(Document doc){45 Node node = doc.getElementsByTagName("xuesheng").item(0);46 //node.getParentNode().removeChild(node);47 //删除属性
48 Element ele =(Element)node;49 ele.removeAttribute("sex");50 }51
52 //添加学生到xml
53 public static voidadd(Document doc){54 //取出这个元素
55 Element element = doc.createElement("xuesheng");56
57 //添加属性
58 element.setAttribute("sex", "vc");59
60 Element element_name = doc.createElement("mingzi");61 element_name.setTextContent("xiaoming");62 Element element_nianling = doc.createElement("nianling");63 element_nianling.setTextContent("23");64 Element element_jieshao = doc.createElement("jieshao");65 element_jieshao.setTextContent("gi sh");66 element.appendChild(element_name);67 element.appendChild(element_nianling);68 element.appendChild(element_jieshao);69
70
71 //添加这个元素
72 doc.getDocumentElement().appendChild(element);73
74 }75 //更新java在xml文件中操作的内容
76 public static void upda(Document doc) throwsException{77 //创建一个TransformerFactory实例
78 TransformerFactory tff =TransformerFactory.newInstance();79 //通过TransformerFactory 得到一个转换器
80 Transformer tf =tff.newTransformer();81 //通过Transformer类的方法 transform(Source xmlSource, Result outputTarget)82 //将 XML Source 转换为 Result。
83 tf.transform(new DOMSource(doc), new StreamResult("src/class.xml"));84 }85
86 //遍历xml文件的元素
87 public static voidlist(Node node){88 if(node.getNodeType()==Node.ELEMENT_NODE)89 System.out.println(node.getNodeName());90 //得到该结点的子结点
91 NodeList nodelist =node.getChildNodes();92
93 for(int i=0;i
99 public static voidred(Document docu){100 NodeList nodelist = docu.getElementsByTagName("xuesheng");101 Element element = (Element)nodelist.item(0);102 System.out.println(element.getAttribute("sex"));103 System.out.println(element.getTextContent());104 }105 }