maven获得dom4j_关于dom4j在maven中的使用

下面是个人测试使用的案例, 大家可以直接拷贝使用, 使用工具是eclipse.

packagecom.test;importjava.io.File;importjava.io.FileOutputStream;importjava.io.OutputStreamWriter;importjava.util.Iterator;importjava.util.List;importorg.dom4j.Attribute;importorg.dom4j.Document;importorg.dom4j.DocumentHelper;importorg.dom4j.Element;importorg.dom4j.io.OutputFormat;importorg.dom4j.io.SAXReader;importorg.dom4j.io.XMLWriter;/** DOM4J类

DOM4J定义了几个Java类。以下是最常见的类:

Document - 表示整个XML文档。文档Document对象是通常被称为DOM树。

Element - 表示一个XML元素。 Element对象有方法来操作其子元素,它的文本,属性和名称空间。

Attribute - 表示元素的属性。属性有方法来获取和设置属性的值。它有父节点和属性类型。

Node - 代表元素,属性或处理指令

常见DOM4J的方法

当使用DOM4J,还有经常用到的几种方法:

SAXReader.read(xmlSource)() - 构建XML源的DOM4J文档。

Document.getRootElement() - 得到的XML的根元素。

Element.node(index) - 获得在元素特定索引XML节点。

Element.attributes() - 获取一个元素的所有属性。

Node.valueOf(@Name) - 得到元件的给定名称的属性的值。

*

**/

public classParseXml {public void readXML() throwsException {//创建saxReader对象

SAXReader reader = newSAXReader();//通过read方法读取一个文件 转换成Document对象

Document document = reader.read(new File("src/test1.xml"));//获取根节点元素对象

Element node =document.getRootElement();//遍历所有的元素节点

listNodes(node);

elementMethod(node);

}public void createXML() throwsException {

Document document=DocumentHelper.createDocument();

Element root= document.addElement("cars");

Element supercarElement= root.addElement("supercars").addAttribute("company", "Ferrai");

supercarElement.addElement("carname").addAttribute("type", "FerrariAttr").addText("FerrariText");

supercarElement.addElement("carname").addAttribute("type", "sportsAttr").addText("sportsText");//写入到一个新的文件中

writer(document);

}/*** 把document对象写入新的文件

*

*@paramdocument

*@throwsException*/

public void writer(Document document) throwsException {//紧凑的格式//OutputFormat format = OutputFormat.createCompactFormat();//排版缩进的格式

OutputFormat format =OutputFormat.createPrettyPrint();//设置编码

format.setEncoding("UTF-8");//创建XMLWriter对象,指定了写出文件及编码格式//XMLWriter writer = new XMLWriter(new FileWriter(new//File("src//a.xml")),format);

XMLWriter writer = newXMLWriter(new OutputStreamWriter(new FileOutputStream(new File("src//test1.xml")), "UTF-8"), format);//写入

writer.write(document);//立即写入

writer.flush();//关闭操作

writer.close();

}/*** 遍历当前节点元素下面的所有(元素的)子节点

*

*@paramnode*/

public voidlistNodes(Element node) {

System.out.println("当前节点的名称::" +node.getName());//获取当前节点的所有属性节点

List list =node.attributes();//遍历属性节点

for(Attribute attr : list) {

System.out.println(attr.getText()+ "-----" + attr.getName() + "---" +attr.getValue());

}if (!(node.getTextTrim().equals(""))) {

System.out.println("文本内容::::" +node.getText());

}//当前节点下面子节点迭代器

Iterator it =node.elementIterator();//遍历

while(it.hasNext()) {//获取某个子节点对象

Element e =it.next();//对子节点进行遍历

listNodes(e);

}

}/***

*@paramnode*/

public voidelementMethod(Element node) {//获取node节点中,子节点的元素名称为supercars的元素节点。

Element e = node.element("supercars");//获取supercars元素节点中,子节点为carname的元素节点(可以看到只能获取第一个carname元素节点)

Element carname = e.element("carname");

System.out.println(e.getName()+ "----" +carname.getText());//获取supercars这个元素节点 中,所有子节点名称为carname元素的节点 。

List carnames = e.elements("carname");for(Element cname : carnames) {

System.out.println(cname.getText());

}//获取supercars这个元素节点 所有元素的子节点。

List elements =e.elements();for(Element el : elements) {

System.out.println(el.getText());

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值