DOM4J

来源:互联网 发布:理科生禅师对话知乎 编辑:程序博客网 时间:2024/06/02 18:12

Dom for java-----"DOM4J"

(1)下载dom4j的jar文件,导入到eclipse项目中,build path....

(2)DOM4J的体系结构:

Node

        |---Attribute

        |--Branch

                   |--Document

                   |--Element

Document:用于描述XML文档

Element:用于描述XML文档中的元素

Attribute:用于描述XML文档中的元素的属性

(3)XML文档基本操作——Attribute

获取元素属性对象的方法有三种:

~通过属性名获取元素属性对象:Attribute attribute=element.attribute("属性名称");

~通过索引获取属性对象:Attribute attribute=element.attribute(0);

~获取所有属性对象集合:List attributeList=root.attributes();

获取属性值:

~通过属性对象:String value=attribute.getValue();

~通过元素对象:String value=element.attributeValue("属性名称");

(4)XML文档基本操作——增加节点

(5)XML文档基本操作——删除节点

package com.dom4j.demo;import java.io.File;import java.util.Iterator;import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class Dom4jDemo {public static void main(String[] args) throws DocumentException {// TODO Auto-generated method stub//1.获取dom4j中读取xml文档的对象SAXReader reader=new SAXReader();File file=new File("stu.xml");//2.通过该读取对象的read方法与要操作的xml文档对象相关联,获取该文档的document对象Document document=reader.read(file);//System.out.println(document.asXML());//3.通过文档对象document可以获取根元素节点对象//Element rootElement=document.getRootElement();//4.通过根元素对象就可以对文档中的内容进行操作//System.out.println(rootElement.getName());//elemnetDemo(document);//获取一个学生信息//getStuElements(document);//获取所有学生的信息//getAllStuInfo(document);//getAllStuInfo_1(document);//getAttribute(document);//addStuElement(document);//System.out.println(document.asXML());removeNode(document);}/* * 演示元素节点 * */public static void elemnetDemo(Document document){Element rootElement=document.getRootElement();//获取一个学生节点Element stuElement=rootElement.element("student");//获取姓名Element nameElement=stuElement.element("name");String name=nameElement.getText();//获取年龄Element ageElement=stuElement.element("age");String age=ageElement.getText();System.out.println(stuElement.getName()+"..."+nameElement.getName()+"="+name+ageElement.getName()+"="+age);}//取出所有student节点public static void getStuElements(Document document){Element rootElement=document.getRootElement();List eleList=rootElement.elements("student");for(int x=0;x<eleList.size();x++){Element stuElement=(Element)eleList.get(x);System.out.println(stuElement.getName());}}//取出所有学生的姓名和年龄public static void getAllStuInfo(Document document){Element rootElement=document.getRootElement();List<Element> stuList=rootElement.elements("student");Iterator<Element> it=stuList.iterator();while(it.hasNext()){Element e=it.next();Element nameElement=e.element("name");Element ageElement=e.element("age");System.out.println(nameElement.getText()+"..."+ageElement.getText());}} //使用elementIterator来遍历元素public static void getAllStuInfo_1(Document document){Element rootElement=document.getRootElement();Iterator<Element> it=rootElement.elementIterator("student");while(it.hasNext()){Element e=it.next();Element nameElement=e.element("name");Element ageElement=e.element("age");System.out.println(nameElement.getText()+"..."+ageElement.getText());}}/** * 获取属性 */public static void getAttribute(Document document){Element rootElement=document.getRootElement();Iterator<Element> it=rootElement.elementIterator("student");while(it.hasNext()){Element stuElement=it.next();Attribute attr=stuElement.attribute(0);//获取第一个属性对象--idString name=attr.getName();//属相对象的名称String value=(String)attr.getValue();//属相对象的值System.out.println("name:"+name+"...value:"+value);}}/* * 添加一个学生节点 * */public static void addStuElement(Document document){Element rootElement=document.getRootElement();Element stuElement=rootElement.addElement("student");stuElement=stuElement.addAttribute("id", "005").addElement("name").addText("zhouqi");//方法调用链//stuElement.addAttribute("id", "005")//返回studentElement//stuElement.addAttribute("id", "005").addElement("name")//返回nameElementstuElement.addElement("age").addText("38");//Element nameElement=stuElement.addElement("name");//nameElement.addText("zhouqi");}/** * 移除节点 * 1,移除属性“005” * 2,移除zhouqi学生节点 */public static void removeNode(Document document){Element rootElement=document.getRootElement();Element stuElement=(Element)rootElement.elements("student").get(2);Element nameElement=stuElement.element("name");Attribute idAttribute=stuElement.attribute("id");stuElement.remove(idAttribute);stuElement.remove(nameElement);rootElement.remove(stuElement);System.out.println(document.asXML());}}

<?xml version="1.0" ?><students><student id="001"><name>zhangsan</name><age>30</age></student><student id="002"><name>lisi</name><age>20</age></student><student id="003"><name>wangwu</name><age>28</age></student></students>






0 0
原创粉丝点击