java對(duì)xml節(jié)點(diǎn)屬性的增刪改查實(shí)現(xiàn)方法
學(xué)習(xí)本文之前請(qǐng)先看我的另一篇文章JAVA對(duì)XML節(jié)點(diǎn)的操作可以對(duì)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
* 對(duì)xml屬性操作
* 時(shí)間:2016年10月2號(hào)
* 操作xml文件為contact.xml
* 本文件文件名為:attrDemo.java
* @author shutu008
*
*/
public class attrDemo{
@Test
public void exmple() throws Exception{
//讀取XML文件,獲得document對(duì)象
SAXReader reader = new SAXReader();
Document document = reader.read(new File("./src/contact.xml"));
//獲得某個(gè)節(jié)點(diǎn)的屬性對(duì)象
Element rootElem = document.getRootElement();
//獲取根節(jié)點(diǎn)屬性對(duì)象
Attribute rootAttr = rootElem.attribute("id");
//獲取指定節(jié)點(diǎn)屬性對(duì)象
Element contactElem = rootElem.element("contact");
Attribute contactAttr = contactElem.attribute("id");
//遍歷某個(gè)節(jié)點(diǎn)的所有屬性
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);
}
//設(shè)置某節(jié)點(diǎn)的屬性和值
contactElem.addAttribute("name", "zhangsan");
//設(shè)置(更改)某屬性的值
Attribute nameAttr = contactElem.attribute("name");
nameAttr.setValue("lisi");
//刪除某節(jié)點(diǎn)的指定屬性
contactElem.remove(nameAttr);
//將某節(jié)點(diǎn)的屬性和值寫入xml文檔中
XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"));
writer.write(document);
writer.close();
/**
* 如果文檔中有中文需要設(shè)置字符編碼
* 用如下語(yǔ)句:
* OutputFormat format = OutputFormat.createPrettyPrint();
* format.setEncoding("GBK");
* XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"),format);
*/
//獲取指定對(duì)象的屬性名
System.out.println(rootAttr.getName());
System.out.println(contactAttr.getName());
//獲取指定對(duì)象的屬性值
System.out.println(contactAttr.getValue());
System.out.println(rootAttr.getValue());
}
}
備注:以上例子代碼可以直接運(yùn)行??梢允褂肑unit 4調(diào)節(jié)本例子的代碼。
以下是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>測(cè)試</test> <test>其他用途</test> </contactList>
文件目錄如圖所示:

以上就是小編為大家?guī)?lái)的java對(duì)xml節(jié)點(diǎn)屬性的增刪改查實(shí)現(xiàn)方法全部?jī)?nèi)容了,希望大家多多支持腳本之家~
- HDFS的Java API的訪問(wèn)方式實(shí)例代碼
- JAVA操作HDFS案例的簡(jiǎn)單實(shí)現(xiàn)
- HDFS中JAVA API的使用
- java 中Spark中將對(duì)象序列化存儲(chǔ)到hdfs
- java實(shí)現(xiàn)將ftp和http的文件直接傳送到hdfs
- java連接hdfs ha和調(diào)用mapreduce jar示例
- JavaWeb應(yīng)用實(shí)例:用servlet實(shí)現(xiàn)oracle 基本增刪改查
- Java語(yǔ)言實(shí)現(xiàn)對(duì)MySql數(shù)據(jù)庫(kù)中數(shù)據(jù)的增刪改查操作的代碼
- java jdbc連接mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查操作
- 編寫Java代碼對(duì)HDFS進(jìn)行增刪改查操作代碼實(shí)例
相關(guān)文章
出現(xiàn)次數(shù)超過(guò)一半(50%)的數(shù)
給出n個(gè)數(shù),需要我們找出出現(xiàn)次數(shù)超過(guò)一半的數(shù),下面小編給大家分享下我的實(shí)現(xiàn)思路及關(guān)鍵代碼,感興趣的朋友一起學(xué)習(xí)吧2016-07-07
Java基于JavaMail實(shí)現(xiàn)向QQ郵箱發(fā)送郵件
這篇文章主要為大家詳細(xì)介紹了Java基于JavaMail實(shí)現(xiàn)向QQ郵箱發(fā)送郵件的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01
Java分頁(yè)查詢的幾種實(shí)現(xiàn)方法舉例
這篇文章主要給大家介紹了關(guān)于Java分頁(yè)查詢的幾種實(shí)現(xiàn)方法,分頁(yè)是系統(tǒng)中常用到的功能,只要涉及到查詢必定伴隨而來(lái)的就是分頁(yè),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
Spring中property-placeholder的使用與解析詳解
本篇文章主要介紹了Spring中property-placeholder的使用與解析詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
使用JSONObject.toJSONString 過(guò)濾掉值為空的key
這篇文章主要介紹了使用JSONObject.toJSONString 過(guò)濾掉值為空的key,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
mybatisPlus條件構(gòu)造器常用方法小結(jié)
這篇文章主要介紹了mybatisPlus條件構(gòu)造器常用方法,首先是.select和其他條件,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10
使用Spring?Boot進(jìn)行單元測(cè)試詳情
這篇文章主要介紹了使用Spring?Boot進(jìn)行單元測(cè)試詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
Java concurrency線程池之線程池原理(三)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了Java concurrency線程池之線程池原理第三篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06

