DOM4J

编程技术  /  houtizong 发布于 3年前   45
DOM4J学习笔记
一、 下载dom4j的文件
二、 在集成开发环境上布置dom4j
加入F:\Program Files\dom4j-1.6.1\dom4j-1.6.1.jar
三、 建立测试文件dom4jTest.xml
<?xml version="1.0" encoding="UTF-8"?><hibernate-mapping><class name="cn.edu.hpu" table="t_user"><property name="username"></property><property name="password"></property></class></hibernate-mapping>

四、 编写测试程序Dom4jTest.java(第一种获得节点与属性的方法)
package cn.edu.hpu;import java.io.File;import java.util.*;import org.dom4j.*;import org.dom4j.io.SAXReader;public class Dom4jTest {public static void main(String[] args) {//建立SAXReader对象SAXReader reader = new SAXReader();Document document = null;try {//获得文档的Document的对象document = reader.read(new File("dom4jTest.xml"));} catch (DocumentException e) {e.printStackTrace();}//获得根标签Element rootElement = document.getRootElement();System.out.println(rootElement.getName());//OUTPUT_RESULT:hibernate-mapping/***********第一种获得节点和属性的方法,使用的比较少***********/for(Iterator it = rootElement.elementIterator(); it.hasNext();) {//获得根标签的子标签Element element = (Element)it.next();System.out.println(element.getName());//OUTPUT_RESULT:classfor(Iterator it1 = element.attributeIterator(); it1.hasNext();) {Attribute attribute = (Attribute)it1.next();System.out.println(attribute.getName() + "-" + attribute.getValue());//OUTPUT_RESULT:name-cn.edu.hpu   table-t_user}}/***********第一种获得节点和属性的方法,使用的比较少***********/}}

五、 第二种获得节点与属性的方法(XPATH)
此处需要加入第二个文件F:\Program Files\dom4j-1.6.1\lib\jaxen-1.1-beta-6.jar
添加测试程序段:
/***********第二种获得节点和属性的方法,使用的比较多***********/
//使用xpath进行获取节点,下面语句表示拿出此path下所有property节点List<Node> nodes = document.selectNodes("//hibernate-mapping/class/property");for(Node node : nodes) {System.out.println(node.getName());//OUTPUT_RESULT:property   property//此处表示取出node中名为name的属性值System.out.println(node.valueOf("@name"));//OUTPUT_RESULT:username   password}//获得单个节点Node node = document.selectSingleNode("//hibernate-mapping/class/property");System.out.println(node.getName());//OUTPUT_RESULT:property

/***********第二种获得节点和属性的方法,使用的比较多***********/
六、 XML文件的生成
package cn.edu.hpu;import java.io.FileWriter;import org.dom4j.*;import org.dom4j.io.*;public class BuildXML {public static void main(String[] args) throws Exception {createXML();}public static Document createXML() throws Exception {//创建Document对象Document document = DocumentHelper.createDocument();//加入根节点Element root = document.addElement("hibernate-mapping");//加入其它的节点与属性Element classNode = root.addElement("class")                           .addAttribute("name", "cn.edu.hpu")                           .addAttribute("table", "t-user");classNode.addElement("property").addAttribute("name", "username");//文件的输出,此处输出的文件格式不好/*FileWriter fWriter = new FileWriter("create.XML");document.write(fWriter);fWriter.flush();fWriter.close();*///使用XMLWriter对象进行输出,得到比较标准的格式//创建相应的输出格式OutputFormat format = OutputFormat.createPrettyPrint();//创建XMLWriter对象XMLWriter fWriter = new XMLWriter(new FileWriter("create.XML") , format);fWriter.write(document);fWriter.close();return document;}}

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客