1. 获取 信息

/*** 获取 信息* @param filename 文件相对路径*/public static Document load(String filename) {    Document document = null;    try {        SAXReader saxReader = new SAXReader();        //使用spring的文件读取方法:org.spring work.core.io.Resource        Resource resource = new ClassPathResource(filename);        document = saxReader.read(resource.getFile()); // 读取 文件,获得document对象    } catch (Exception ex) {        ex.printStackTrace();    }    return document;}

reader的read方法是重载的,可以从InputStream, File, Url等多种不同的源来读取。得到的Document对象就代表了整个 。
读取的字符编码是按照 文件头定义的编码来转换。如果遇到乱码问题,注意要把各处的编码名称保持一致即可

获取根节点

root元素是 文档的根节点。一切 分析都是从Root元素开始的

#获取 文档    Document document = load("conf/test. ");#获取 的根节点Element root = document.getRootElement();

2. 常用到的方法

#获得根元素下的所有子节点。 List<Element> elementList=root.elements();#获得element节点的名字    String elementName=element.getName();#获得element节点的文本节点值    String elementValue=element.getText(); #获得element节点的属性  Attribute attribute=element.attribute();#获得属性值String attrValue=element.attributeValue("attrName");

3. 遍历

节点的遍历有如下方式:

//方式一: 枚举所有子节点 for ( Iterator i = root.elementIterator(); i.hasNext(); ) {    Element element = (Element) i.next();    //TODO 获取相关节点信息和操作}//方式二: 枚举名称为foo的节点 for ( Iterator i = root.elementIterator(foo); i.hasNext();) {    Element foo = (Element) i.next();    //TODO 获取相关节点信息和操作 }//方式三 枚举属性for ( Iterator i = root.attributeIterator(); i.hasNext(); ) {    Attribute attribute = (Attribute) i.next();    //TODO 获取相关节点信息和操作 }//方式四: 循环遍历子节点 List<Element> elementList=root.elements();for(int i=0;i<elementList.size(); i++){    Element element = (Element) elementList.get(i);    //TODO 获取相关节点信息和操作    //子节点遍历    List elementRoot = element.elements();    //判断是否存在子节点    if(null!=elementRoot && elementRoot.size()>0){        //递归调用此方法        //TODO 相关操作    }    }
收藏 打印