1. 程式人生 > 其它 >java對xml節點屬性的增刪改查實現方法

java對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()); } }

以下是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>[email protected]</email>
  <qq>432221111</qq>
 </contact>
 <contact id="002">
  <name>李四</name>
  <age>20</age>
  <phone>134222225555</phone>
  <email>[email protected]</email>
  <qq>432222222</qq>
 </contact>
 <contactTwo>
  <name>王五</name>
  <age>32</age>
  <phone>465431341</phone>
  <emali>[email protected]</emali>
  <qq>46164694</qq>
 </contactTwo>
 <test>測試</test>
 <test>其他用途</test>
</contactList>

檔案目錄如圖所示