基于JDOM生成解析XML過程解析
JDOM是一個開源項目,它基于樹型結(jié)構(gòu),利用純JAVA的技術(shù)對XML文檔實現(xiàn)解析、生成、序列化以及多種操作。
JDOM 直接為JAVA編程服務(wù)。它利用更為強有力的JAVA語言的諸多特性(方法重載、集合概念以及映射),把SAX和DOM的功能有效地結(jié)合起來。
Jdom是用Java語言讀、寫、操作XML的新API函數(shù)。Jason Hunter 和 Brett McLaughlin公開發(fā)布了它的1.0版本。在直覺、簡單和高效的前提下,這些API函數(shù)被最大限度的優(yōu)化。在接下來的篇幅里將介紹怎么用Jdom去讀寫一個已經(jīng)存在的XML文檔。
到官方網(wǎng)站下載JDOM包http://www.jdom.org/
注意的是,版本1和版本2的類路徑已經(jīng)變更,如果你是更新使用版本2,則需要重新編譯你的代碼
package com.test; import java.io.FileOutputStream; import java.util.List; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; import org.jdom2.output.Format; import org.jdom2.output.XMLOutputter; /** * @說明 JDom生成解析XML * @author cuisuqiang * @version 1.0 * @since */ @SuppressWarnings("unchecked") public class JDomDemo { public static void main(String[] args) { String file = "C:\\p.xml"; // 文件存放位置 JDomDemo dj = new JDomDemo(); dj.createXml(file); dj.parserXml(file); } /** * 生成XML * @param filePath 文件路徑 */ public void createXml(String fileName) { Element root = new Element("persons"); Document document = new Document(root); Element person = new Element("person"); root.addContent(person); Element name = new Element("name"); name.setText("java小強"); person.addContent(name); Element sex = new Element("sex"); sex.setText("man"); person.addContent(sex); Element age = new Element("age"); age.setText("23"); person.addContent(age); XMLOutputter XMLOut = new XMLOutputter(); try { Format f = Format.getPrettyFormat(); f.setEncoding("UTF-8");//default=UTF-8 XMLOut.setFormat(f); XMLOut.output(document, new FileOutputStream(fileName)); } catch (Exception e) { e.printStackTrace(); } } /** * 解析XML * @param filePath 文件路徑 */ public void parserXml(String fileName) { try { SAXBuilder builder = new SAXBuilder(); Document document = builder.build(fileName); Element root = document.getRootElement(); List persons = root.getChildren("person"); for (int i = 0; i < persons.size(); i++) { Element person = (Element) persons.get(i); List pros = person.getChildren(); for (int j = 0; j < pros.size(); j++) { Element element = (Element) pros.get(j); System.out.println(element.getName() + ":" + element.getValue()); } } } catch (Exception e) { e.printStackTrace(); } } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
教你Java中的Lock鎖底層AQS到底是如何實現(xiàn)的
本文是基于ReentrantLock來講解,ReentrantLock加鎖只是對AQS的api的調(diào)用,底層的鎖的狀態(tài)(state)和其他線程等待(Node雙向鏈表)的過程其實是由AQS來維護的,對Java?Lock鎖AQS實現(xiàn)過程感興趣的朋友一起看看吧2022-05-05Intellij IDEA基于Springboot的遠程調(diào)試(圖文)
這篇文章主要介紹了Intellij IDEA基于Springboot的遠程調(diào)試(圖文),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Spring?Boot?集成Redisson實現(xiàn)分布式鎖詳細(xì)案例
這篇文章主要介紹了Spring?Boot?集成Redisson實現(xiàn)分布式鎖詳細(xì)案例,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-08-08java導(dǎo)出excel 瀏覽器直接下載或者或以文件形式導(dǎo)出
這篇文章主要介紹了java導(dǎo)出excel 瀏覽器直接下載或者或以文件形式導(dǎo)出方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06Java動態(tài)替換properties文件中鍵值方式
這篇文章主要介紹了Java動態(tài)替換properties文件中鍵值方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08SpringBoot超詳細(xì)講解Thymeleaf模板引擎
這篇文章主要分享了Spring Boot整合使用Thymeleaf,Thymeleaf是新一代的Java模板引擎,類似于Velocity、FreeMarker等傳統(tǒng)引擎,關(guān)于其更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下2022-07-07