這篇文章將為大家詳細(xì)講解有關(guān)xml解析中如何使用dom4j的api對xml文件進(jìn)行CRUD,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)公司是一家專業(yè)提供高唐企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站制作、H5場景定制、小程序制作等業(yè)務(wù)。10年已為高唐眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
package gz.itcast.a_dom4j_write; import java.io.File; import java.io.FileOutputStream; import java.util.Iterator; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; import org.junit.Test; /** * 課堂練習(xí): * 1.使用dom4j的api來生成以下的xml文件 <Students> <Student id="1"> <name>張三</name> <gender>男</gender> <grade>計算機(jī)1班</grade> <address>廣州天河</address> </Student> <Student id="2"> <name>李四</name> <gender>女</gender> <grade>計算機(jī)2班</grade> <address>廣州越秀</address> </Student> </Students> 2.修改id為2的學(xué)生的姓名,改為“王麗” 3.刪除id為2的學(xué)生 * @author APPle * */ public class Demo4 { /** * 1.生成指定xml文檔 * @throws Exception */ @Test public void test1() throws Exception{ //1.內(nèi)存創(chuàng)建xml文檔 Document doc = DocumentHelper.createDocument(); //2.寫入內(nèi)容,第一個寫入的就是根標(biāo)簽 Element rootElem = doc.addElement("Students"); //2.1 增加標(biāo)簽 Element studentElem1 = rootElem.addElement("Student"); //2.2 增加屬性 studentElem1.addAttribute("id", "1"); //2.3 增加標(biāo)簽,【同時】設(shè)置文本 studentElem1.addElement("name").setText("張三"); studentElem1.addElement("gender").setText("男"); studentElem1.addElement("grade").setText("計算機(jī)1班"); studentElem1.addElement("address").setText("廣州天河"); //2.1 增加標(biāo)簽 Element studentElem2 = rootElem.addElement("Student"); //2.2 增加屬性 studentElem2.addAttribute("id", "2"); //2.3 增加標(biāo)簽,同時設(shè)置文本 studentElem2.addElement("name").setText("李四"); studentElem2.addElement("gender").setText("女"); studentElem2.addElement("grade").setText("計算機(jī)2班"); studentElem2.addElement("address").setText("廣州越秀"); //3.只要對doc做了修改,都要做一次寫出。內(nèi)容寫出到xml文件 //3.1 輸出位置 FileOutputStream out = new FileOutputStream("d:/student.xml"); //3.2 指定格式 OutputFormat format = OutputFormat.createPrettyPrint(); // 設(shè)置編碼 format.setEncoding("utf-8"); XMLWriter writer = new XMLWriter(out,format); //3.3 寫出內(nèi)容 writer.write(doc); //3.4關(guān)閉資源 writer.close(); } /** * 2.修改id為2的學(xué)生姓名 * @throws Exception */ @Test public void test2() throws Exception{ //1.查詢到id為2的學(xué)生 Document doc = new SAXReader().read(new File("d:/student.xml")); //1.1 找到所有的Student標(biāo)簽 Iterator<Element> it = doc.getRootElement().elementIterator("Student"); while(it.hasNext()){ Element stuElem = it.next();//Student標(biāo)簽 //1.2 查詢id為id的學(xué)生標(biāo)簽 if(stuElem.attributeValue("id").equals("2")){ stuElem.element("name").setText("王麗");//覆蓋式 break; } } //3.1 輸出位置 FileOutputStream out = new FileOutputStream("d:/student.xml"); //3.2 指定格式 OutputFormat format = OutputFormat.createPrettyPrint(); // 設(shè)置編碼 format.setEncoding("utf-8"); XMLWriter writer = new XMLWriter(out,format); //3.3 寫出內(nèi)容 writer.write(doc); //3.4關(guān)閉資源 writer.close(); } /** * 3.刪除id為2的學(xué)生 * @throws Exception */ @Test public void test3() throws Exception{ //1.查詢到id為2的學(xué)生 Document doc = new SAXReader().read(new File("e:/student.xml")); //1.1 找到所有的Student標(biāo)簽 Iterator<Element> it = doc.getRootElement().elementIterator("Student"); while(it.hasNext()){ Element stuElem = it.next(); //1.2 查詢id為id的學(xué)生標(biāo)簽 if(stuElem.attributeValue("id").equals("2")){ //1.3 刪除該學(xué)生標(biāo)簽 stuElem.detach();//自殺式 break; } } //3.1 輸出位置 FileOutputStream out = new FileOutputStream("e:/student.xml"); //3.2 指定格式 OutputFormat format = OutputFormat.createPrettyPrint(); // 設(shè)置編碼 format.setEncoding("utf-8"); XMLWriter writer = new XMLWriter(out,format); //3.3 寫出內(nèi)容 writer.write(doc); //3.4關(guān)閉資源 writer.close(); } }
關(guān)于“xml解析中如何使用dom4j的api對xml文件進(jìn)行CRUD”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
文章標(biāo)題:xml解析中如何使用dom4j的api對xml文件進(jìn)行CRUD
文章位置:http://redsoil1982.com.cn/article22/jdjocc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、自適應(yīng)網(wǎng)站、商城網(wǎng)站、ChatGPT、云服務(wù)器、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)