java对xml节点属性的增删改查实现方法

学习本文之前请先看我的另一篇文章JAVA对XML节点的操作可以对XML操作有更好的了解。

package vastsum;

import java.io.File;

import java.io.FileWriter;

import java.util.Iterator;

import org.dom4j.Attribute;

import org.dom4j.Document;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;

import org.junit.Test;

/**

* 使用dom4j操作xml

* 对xml属性操作

* 时间:2016年10月2号

* 操作xml文件为contact.xml

* 本文件文件名为:attrDemo.java

* @author shutu008

*

*/

public class attrDemo{

@Test

public void exmple() throws Exception{

//读取XML文件,获得document对象

SAXReader reader = new SAXReader();

Document document = reader.read(new File("./src/contact.xml"));

//获得某个节点的属性对象

Element rootElem = document.getRootElement();

//获取根节点属性对象

Attribute rootAttr = rootElem.attribute("id");

//获取指定节点属性对象

Element contactElem = rootElem.element("contact");

Attribute contactAttr = contactElem.attribute("id");

//遍历某个节点的所有属性

for (Iterator it = contactElem.attributeIterator();it.hasNext();){

Attribute conAttr= (Attribute)it.next();

String conTxt = conAttr.getValue();

String conAttrName = conAttr.getName();

System.out.println(conAttrName+" = "+conTxt);

}

//设置某节点的属性和值

contactElem.addAttribute("name", "zhangsan");

//设置(更改)某属性的值

Attribute nameAttr = contactElem.attribute("name");

nameAttr.setValue("lisi");

//删除某节点的指定属性

contactElem.remove(nameAttr);

//将某节点的属性和值写入xml文档中

XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"));

writer.write(document);

writer.close();

/**

* 如果文档中有中文需要设置字符编码

* 用如下语句:

* OutputFormat format = OutputFormat.createPrettyPrint();

* format.setEncoding("GBK");

* XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"),format);

*/

//获取指定对象的属性名

System.out.println(rootAttr.getName());

System.out.println(contactAttr.getName());

//获取指定对象的属性值

System.out.println(contactAttr.getValue());

System.out.println(rootAttr.getValue());

}

}

备注:以上例子代码可以直接运行。可以使用Junit 4调节本例子的代码。

以下是XML文档:

<?xml version="1.0" encoding="UTF-8"?>

<contactList id="0">

<contact id="001" class="style">

<name>张三</name>

<age>20</age>

<phone>134222223333</phone>

<email>zhangsan@qq.com</email>

<qq>432221111</qq>

</contact>

<contact id="002">

<name>李四</name>

<age>20</age>

<phone>134222225555</phone>

<email>lisi@qq.com</email>

<qq>432222222</qq>

</contact>

<contactTwo>

<name>王五</name>

<age>32</age>

<phone>465431341</phone>

<emali>af@qq.com</emali>

<qq>46164694</qq>

</contactTwo>

<test>测试</test>

<test>其他用途</test>

</contactList>

文件目录如图所示:

以上就是小编为大家带来的java对xml节点属性的增删改查实现方法全部内容了,希望大家多多支持~

以上是 java对xml节点属性的增删改查实现方法 的全部内容, 来源链接: utcz.com/p/210593.html

回到顶部