JAVA操作XML文档主要有四种方式,分别是DOM、SAX、JDOM和DOM4J,DOM和SAX是官方提供的,而JDOM和DOM4J则是引用第三方库的,其中用的最多的是DOM4J方式。运行效率和内存使用方面最优的是SAX,但是由于SAX是基于事件的方式,所以SAX无法在编写XML的过程中对已编写内容进行修改,但对于不用进行频繁修改的需求,还是应该选择使用SAX。


1 package xmls; 2 import org.w3c.dom.Document; 3 import org.w3c.dom.Element; 4 import org.w3c.dom.Node; 5 import org.w3c.dom.NodeList; 6 import org.xml.sax.SAXException; 7 import javax.xml.parsers.DocumentBuilder; 8 import javax.xml.parsers.DocumentBuilderFactory; 9 import javax.xml.parsers.ParserConfigurationException;10 import java.io.File;11 import java.io.IOException;12 /**13 * Created by lenovo on 2017-6-3.14 */15 public class DOMReadDemo {16 public static void main(String[] args){17 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();18 try{19 DocumentBuilder db = dbf.newDocumentBuilder();20 Document document = db.parse("src/xmls/DOM.xml");21 NodeList booklist = document.getElementsByTagName("book");22 for(int i = 0; i
第二,以SAX的方式实现。


1 package xmls; 2 import javax.xml.parsers.SAXParser; 3 import javax.xml.parsers.SAXParserFactory; 4 /** 5 * Created by lenovo on 2017-6-1. 6 */ 7 public class xmlTest2 { 8 public static void main(String[] args){ 9 SAXParserFactory spf = SAXParserFactory.newInstance();10 try{11 SAXParser sp = spf.newSAXParser();12 SAXParserHandler handler = new SAXParserHandler();13 sp.parse("src\\xmls\\book.xml", handler);14 }catch (Exception e){15 e.printStackTrace();16 }17 }18 }


1 package xmls; 2 import org.xml.sax.Attributes; 3 import org.xml.sax.SAXException; 4 import org.xml.sax.helpers.DefaultHandler; 5 /** 6 * Created by lenovo on 2017-6-1. 7 */ 8 public class SAXParserHandler extends DefaultHandler { 9 @Override10 public void startDocument() throws SAXException {11 super.startDocument();12 System.out.println("SAX解析开始");13 }14 @Override15 public void endDocument() throws SAXException {16 super.endDocument();17 System.out.println("SAX解析结束");18 }19 @Override20 public void startElement(String s, String s1, String s2, Attributes attributes) throws SAXException {21 super.startElement(s, s1, s2, attributes);22 System.out.println(s2);23 for(int i = 0; i
第三,以JDOM的方式实现。


1 package xmls; 2 import org.jdom2.Attribute; 3 import org.jdom2.Document; 4 import org.jdom2.Element; 5 import org.jdom2.JDOMException; 6 import org.jdom2.input.JDOMParseException; 7 import org.jdom2.input.SAXBuilder; 8 import java.io.*; 9 import java.util.List;10 /**11 * Created by lenovo on 2017-6-2.12 */13 public class JDOMTest {14 public static void main(String[] args){15 SAXBuilder saxBuilder = new SAXBuilder();16 InputStream in;17 try{18 in = new FileInputStream(new File("src\\xmls\\book.xml"));19 Document document = saxBuilder.build(in);20 Element rootElement = document.getRootElement();21 List<element> bookList = rootElement.getChildren();22 for(Element book: bookList){23 System.out.println("第" + (bookList.indexOf(book)+1) + "本书!");24 List<attribute> attrs = book.getAttributes();25 for(Attribute attr: attrs){26 System.out.println(attr.getName() + "=" + attr.getValue());27 }28 for(Element item: book.getChildren()){29 System.out.println(item.getName() + ":" + item.getValue());30 }31 System.out.println("------------------------------------");32 }33 }catch (FileNotFoundException e){34 e.printStackTrace();35 }catch (JDOMException e){36 e.printStackTrace();37 }catch (IOException e){38 e.printStackTrace();39 }40 }41 }</attribute></element>
第四,以DOM4J的方式实现。


1 package xmls; 2 import org.dom4j.*; 3 import org.dom4j.io.OutputFormat; 4 import org.dom4j.io.SAXReader; 5 import org.dom4j.io.XMLWriter; 6 import java.io.File; 7 import java.io.FileOutputStream; 8 import java.io.IOException; 9 import java.util.Iterator;10 import java.util.List;11 /**12 * Created by lenovo on 2017-6-2.13 */14 public class DOM4JTest {15 public void parseXML(){16 SAXReader saxReader = new SAXReader();17 try{18 Document document = saxReader.read(new File("src\\xmls\\book.xml"));19 Element rootElement = document.getRootElement();20 Iterator it = rootElement.elementIterator();21 while (it.hasNext()){22 Element book = (Element)it.next();23 List<attribute> attrs = book.attributes();24 for(Attribute attr: attrs){25 System.out.println("属性名:" + attr.getName() + "---- 属性值:" + attr.getValue() );26 }27 Iterator cit = book.elementIterator();28 while (cit.hasNext()){29 Element child = (Element) cit.next();30 System.out.println("子节点:" + child.getName());31 }32 }33 }catch (DocumentException e){34 e.printStackTrace();35 }36 }37 public static void main(String[] args){38 DOM4JTest dom4JTest = new DOM4JTest();39 dom4JTest.parseXML();40 }41 }</attribute>
以上是讀取XML文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

WebStorm Mac版
好用的JavaScript開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中