XML解析之sax解析案例(一)讀取contact.xml檔案,完整輸出文件內容
一、新建Demo2類:
import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; /** * 讀取contact.xml檔案,完整輸出文件內容 * @author APPle * */ public class Demo2 { public static void main(String[] args)throws Exception { //1.建立SAXParser SAXParser parser = SAXParserFactory.newInstance().newSAXParser(); //2.讀取xml檔案 MyDefaultHandler2 handler = new MyDefaultHandler2(); parser.parse(new File("./src/contact.xml"), handler); String content = handler.getContent(); System.out.println(content); } }
二、建立自定義MyDefaulthander2
列印輸出結果:import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; /** * SAX處理器程式 * @author APPle */ public class MyDefaultHandler2 extends DefaultHandler { //儲存xml文件資訊 private StringBuffer sb = new StringBuffer(); //獲取xml資訊 public String getContent(){ return sb.toString(); } /** * 開始標籤 */ @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { sb.append("<"+qName); //判斷是否有屬性 if(attributes!=null){ for(int i=0;i<attributes.getLength();i++){//int getLength() 返回此列表中的屬性個數。 //得到屬性名稱 id="001" String attrName = attributes.getQName(i);//String getQName(int index) 通過索引查詢屬性的 XML 限定(字首)名。 //得到屬性值 String attrValue = attributes.getValue(i);//String getValue(int index) 通過索引查詢屬性的值。 sb.append(" "+attrName+"=\""+attrValue+"\""); } } sb.append(">"); } /** * 文字內容 */ @Override public void characters(char[] ch, int start, int length) throws SAXException { //得到當前讀取的文字 String content = new String(ch,start,length); sb.append(content); } /** * 結束標籤 */ @Override public void endElement(String uri, String localName, String qName) throws SAXException { sb.append("</"+qName+">"); } }
<contactList>
<contact id="001" name="eric">
<name>張三</name>
<age>20</age>
<phone>134222223333</phone>
<email>[email protected]</email>
<qq>432221111</qq>
</contact>
<contact id="002" name="jacky">
<name>eric</name>
<age>20</age>
<phone>134222225555</phone>
<email>
<qq>432222222</qq>
</contact>
</contactList>
相關推薦
XML解析之sax解析案例(一)讀取contact.xml檔案,完整輸出文件內容
一、新建Demo2類: import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXP
樹狀解析之深度優先演算法(一)
導讀:最近有一個解析樹的業務,之前參加過藍橋杯演算法比賽學過一些演算法。(還好沒有全部忘記哈哈)怕以後忘記這種思路特寫此博文。 一、深度優先,記得廣告中經常聽到過,抱著試試看的態度買了3個療程,效果不錯........ 也經常聽人說過什麼車到山前必有路,船到橋頭自然直。哈哈,這種思想就是回溯思
java基礎之I/O流(一)------------字元流的檔案讀寫操作
一.流的概念: java的輸入輸出稱為流,流是一組有順序的集合。而流的本質則是資料傳輸 二.流的分類: 1.根據處理的功能分為位元組流(InputStream,OutPutStrean)和字元流(Writer,Reader)
Git(一)Git的簡介安裝與本地倉庫文件可視化管理
ast src 目標 commit 合作 sta 方式 發的 問題 一.git歷史 同生活中的許多偉大事件一樣,Git 誕生於一個極富紛爭大舉創新的年代。Linux 內核開源項目有著為數眾廣的參與者。絕大多數的 Linux 內核維護工作都花在了提交補丁和保存歸檔的繁
XML解析之sax解析案例(二)使用sax解析把 xml文件封裝成物件
Demo1類: import java.io.File; import java.util.List; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; /**
使用XStream解析復雜XML並插入數據庫(一)
針對 很多 trac ota print root parser 沒有 jdbc 環境: Springboot+mysql 我只想說jpa真的超級好用,準備深入研究一下~ 導入依賴: <dependency> <groupId>org.proj
XML解析之——SAX解析
一、定義SAX,全稱 Simple API for XML,是一種以事件驅動的XML API 由於它是邊掃描邊解析,所以具有解析速度快、佔用記憶體小的有點。二、解析步驟1、獲取XML檔案資源,可以是XML檔案的輸入流或者檔案、uri。2、得到SAX解析器工廠(SAXParse
註冊中心 Eureka 原始碼解析 —— Eureka-Client 初始化(一)之 EurekaInstanceConfig
本文主要基於 Eureka 1.8.X 版本1. 概述2. EurekaInstanceConf
KING_U3D學習之Unity Test Tools(一)_官方例子解析
Unity Test Tools是Unity3D自帶的一個免費測試外掛,你可以在Asset store下載它,下載地址:https://www.assetstore.unity3d.com/en/#!/content/13802,然後匯入,完成後選單項會有Unity Te
Eureka 原始碼解析 —— 應用例項註冊發現(一)之註冊
// DiscoveryClient.javaboolean register() throws Throwable { logger.info(PREFIX + appPathIdentifier + ": registering service..."); EurekaHttpResponse&l
《Android 安全(一)》AndroidManifest.xml之allowBackup屬性
前言 " android:allowBackup"是一個是否允許備份系統和使用者資料的屬性。 當這個標誌被設定為true時應用程式資料可以在手機未獲取 ROOT 的情況下通過adb除錯工具來備份和恢復。 案例分析 從應用商城裡下載一個“密碼本”之類的應用。 1. 使用An
Jetty9架構解析-Jetty配置及部署(一)
2.1. Jetty配置概述 對於Web伺服器來說,可配置性是一項非常重要的指標(從軟體設計層面,我們也可以稱之為架構要素),它在很大程度上也會影響一款伺服器的適用範圍。之所以這麼說,是因為真實的部署場景千變萬化,只有做到靈活可配,我們才可以對其進行深度定
深入解析Mac OSX & IOS 作業系統(一)
Unix 的系統目錄 OSX 是一個符合UNIX標準的系統,因此也有那些標準的UNIX具有的目錄結構 /bin UNIX中的二進位制程式,這是常用UNIX命令所在的地方 /sbin 系統程式,這些二進
微信支付接入完全解析之Android客戶端(2)
前段時間在一個App中接入了微信支付功能,想來也穩定執行快一個月了,回頭想想自己接入微信支付時候踩過的坑,決定寫一篇自己當初想要搜尋的文章,文章準備分3篇完成。 第一篇:微信支付前期準備 第二篇:微信支付接入客戶端部分(以Android為例
基於逆波蘭表示式的公式解析器-演算法和思路(一)
背景: 最近專案需要自己完成Excel的公式解析和求值,在Java中可以使用POI解析Excel公式然後求值。但是專案需要JS端和Java後端均需要支援公式解析,所以就需要自己寫一套了。
複習之MyBatis基礎用法(一)——XML對映檔案
簡介 什麼是 MyBatis ? MyBatis 是支援定製化 SQL、儲存過程以及高階對映的優秀的持久層框架。MyBatis 避免了幾乎所有的 JDBC 程式碼和手工設定引數以及抽取結果集。MyBatis 使用簡單的 XML 或註解來配置和對映基本體,將介面和
JVM——深入解析原理和執行機制(一)類載入過程
隔了好久終於把這篇文章補上了,最近在看《深入理解Java虛擬機器》,一本很不錯的書,必須值得一看。 由於本人對Java類的載入過程一直是一知半解,所以優先看了一下
JVM——深入解析原理和執行機制(一)類載入器
上次我們說了一下jvm中類載入的過程,大概有載入,連線(驗證,準備,解析),初始化這麼幾個步驟,當然要實現這些功能就需要有載入器,今天我們就來說說jvm中的類載入器。 一、分類
python框架之 Tornado 學習筆記(一)
tornado pythontornado 一個簡單的服務器的例子:首先,我們需要安裝 tornado ,安裝比較簡單: pip install tornado 測試安裝是否成功,可以打開python 終端,輸入: import tornado.https
python大法之二-一些基礎(一)
計算機編程 python 獨立博客 hello 解釋器 個人獨立博客出處:http://www.xbman.cn/出處:http://www.xbman.cn/article/3Python是一種解釋性計算機編程語言。采用縮進式語法,寫起來的感覺有點像排了版的shell,這裏要註意寫pyt