JAVA XML 解析 DOM 方式

来源:互联网 发布:淘宝进店提醒 编辑:程序博客网 时间:2024/04/30 22:34

Java 的DOM方式解析XML文档的用法备忘记录:

1. 解析xml文档

     File file = new File("user_db.xml");

     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//实例化一个解析工厂

     DocumentBuilder builder = factory.newDocumentBuilder();//获取此类的实例之后,将可以从各种输入源解析 XML
     Document doc = builder.parse(file);//将文档内容解析成XML文档,并且封装成一个Document对象返回给Document
     NodeList n1 = doc.getElementsByTagName("user");//获取我能当中节点为user的一个节点列表。一般用于判断该Document 中user节点的长度,和遍历该类节点时使用,     

                                                                                                   //用getLenght()即可获得下该节点的个数.

     doc.getElementsByTagName("user-name").item(i).getFirstChild().getNodeValue();//用该方法去的对应节点的值,一般用于叶节点


2. 想XML文档中添加新元素

    a. 实例一个新元素节点,并且添加个属性值和子节点的值

        Element user= doc.createElement("user");//创建一个新元素

        Element password = doc.createElement("user-password");//创建新元素的子节点
                password.setTextContent("新密码");        //设置子节点的节点值
         Element gender = doc.createElement("user-gender");//
                gender.setTextContent("女");           
         Element age = doc.createElement("user-age");
                age.setTextContent("18");
                
         user.appendChild(name);     //添加子节点
         user.appendChild(password);
         user.appendChild(gender);
         user.appendChild(age);

        doc.getDocumentElement().appendChild(user);//获取XML文档的根节点,并且将新元素添加到根元素的最后一个子节点的后面。

   //如果没有获得根元素直接添加,则添加的新节点和根节点平行。doc.appendChild(user);

     b. 将对文档的更改写到文件当中

        Transformer t=tf.newTransformer();//将源树转换为结果树的一个实例,然后将输出写入各种接收器
              Properties props=t.getOutputProperties();
              props.setProperty(OutputKeys.ENCODING, "UTF-8");//设置输出的编码格式
              t.setOutputProperties(props);//将输出流文件和Transformer进行关联
              DOMSource dom=new DOMSource(doc);//此处的doc为修改之后的DOM文件
              StreamResult sr=new StreamResult(file);
              t.transform(dom, sr);//最后将更新插入到XML 文档之中。




原创粉丝点击