zoukankan      html  css  js  c++  java
  • java操作xml——添加、修改、删除、遍历

      1 package com.xml.zh;
      2 import javax.xml.parsers.*;
      3 import javax.xml.transform.Transformer;
      4 import javax.xml.transform.TransformerConfigurationException;
      5 import javax.xml.transform.TransformerFactory;
      6 import javax.xml.transform.dom.DOMSource;
      7 import javax.xml.transform.stream.StreamResult;
      8 
      9 import org.w3c.dom.*;
     10 public class XmlTest1{
     11 
     12 /**
     13 * 使用dom技术对xml进行解析
     14 * @param args
     15 * 从这里我发现: Node 是 Element, document的父类, Element类主要是
     16 * 增加,删除,修改,返回 等。document 创建 xml中的对象
     17 * 例:document.getElementById();方法。
     18 */
     19 public static void main(String[] args) throws Exception{
     20 // TODO Auto-generated method stub
     21 //创建一个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 void update(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 void del(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 void add(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) throws Exception{
     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 void list(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<nodelist.getLength();i++){
     94 Node n = (Node) nodelist.item(i);
     95 list(n);
     96 }
     97 }
     98 //获取document对象的 元素的 文本
     99 public static void red(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 }
  • 相关阅读:
    swift -- 静态变量static
    swift -- 单例+ lazy懒加载 + 第三方库
    swift -- 代理delegate
    swift -- 闭包
    swift -- 构造/析构函数
    swift -- 继承
    swift -- as / 扩展
    swift -- 类中的方法
    swift -- 类和结构体
    C 扩展库
  • 原文地址:https://www.cnblogs.com/sasaxu/p/3317490.html
Copyright © 2011-2022 走看看