您好,登錄后才能下訂單哦!
這篇文章主要介紹了XML中SAX解析過程的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
新建Demo1類:
import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; /** * 第一個SAX讀取xml文件程序 * @author APPle * */ public class Demo1 { public static void main(String[] args) throws Exception{ //1.創建SAXParser對象 // SAXParser parser = SAXParserFactory.newInstance().newSAXParser(); //2.調用parse方法 /** * 參數一: xml文檔 * 參數二: DefaultHandler的子類,默認基類,因此沒法new。用子類 */ parser.parse(new File("./src/contact.xml"), new MyDefaultHandler()); //使用指定的 DefaultHandler 將指定文件的內容解析為 XML。這里一定要自定義MyDefaultHandler類,且在里面實現業務邏輯。不理解先死記住這種模式。 } }
接著給出自定義繼承DefaultHandler的MyDefaultHandler
import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; /** * SAX處理程序(如何解析xml文檔) * @author APPle * */ public class MyDefaultHandler extends DefaultHandler { /** * 開始文檔時調用 */ @Override public void startDocument() throws SAXException { System.out.println("MyDefaultHandler.startDocument()"); } /** * 開始標簽時調用 * @param qName: 表示開始標簽的標簽名 * @param attributes: 表示開始標簽內包含的(屬性)【列表】 */ @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { System.out.println("MyDefaultHandler.startElement()-->"+qName); } /** * 結束標簽時調用 * @param qName: 結束標簽的標簽名稱 */ @Override public void endElement(String uri, String localName, String qName) throws SAXException { System.out.println("MyDefaultHandler.endElement()-->"+qName); } /** * 讀到文本內容的時調用 * @param ch: 表示當前讀完的所有文本內容 * @param start: 表示當前文本內容的開始位置 * @param length: 表示當前文本內容的長度 */ @Override public void characters(char[] ch, int start, int length) throws SAXException { //得到當前文本內容 String content = new String(ch,start,length); System.out.println("MyDefaultHandler.characters()-->"+content); } /** * 結束文檔時調用 */ @Override public void endDocument() throws SAXException { System.out.println("MyDefaultHandler.endDocument()"); } }
打印輸出,更直觀認識sax解析過程。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“XML中SAX解析過程的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。