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

网友投稿 282 2023-07-04


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

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

package vastsum;

import java.io.File;

import java.io.FileWriter;

import javaMQEvfe.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(http://"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文档:

张三

20

134222223333

zhangsan@qq.com

432221111

李四

20

134222225555

lisi@qq.com

432222222

王五

32

465431341

af@qq.com

46164694

http://测试

<test>其他用途&MQEvfelt;/test>

文件目录如图所示:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Jq通过td获取同行其它列td的方法
下一篇:switch语句的妙用(必看篇)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~