SAX PULL DOCUMENT解析XML總結

2020-12-06 電子產品世界

一、SAX解析

本文引用地址:http://www.eepw.com.cn/article/201609/303742.htm

1、繼承DefaultHandler類,重寫startDocument、startElement、character、endElement、endDocument方法,startDocument在讀取時調用,可寫一些實例化列表等;startElement在讀取每個標籤時調用,通過判斷歷史標籤需要是否為需要獲取的值的頭;characters用來讀取標籤中的值;endElement讀取標籤的結束,用來保存characters獲取的值;endDocument一般不做處理。

2、調用,用SAXParser或者XMLReader來解析

SAXParser解析

SAXHandlerParseService saxForHandler = newSAXHandlerParseService();

SAXParserFactory spf = SAXParserFactory.newInstance();

SAXParser saxParse = spf.newSAXParser();

saxParse.parse(input, saxForHandler);

ListMapString, Object>> userList = saxForHandler.getUser();

XMLReader解析

SAXHandlerParseService saxForHandler = new SAXHandlerParseService();

SAXParserFactory spf = SAXParserFactory.newInstance();

SAXParser saxParse = spf.newSAXParser();

// 為xmlReader設置內容處理器

XMLReader reader = saxParse.getXMLReader();

reader.setContentHandler(saxForHandler);

// 開始賦值

reader.parse(new InputSource(new StringReader(xml)));

List> userList = saxForHandler.getUser();

在解析時,一定要小心,不要忽略空白的地方,Sax解析器會把它認為是一個TextNod

二、PULL解析

與SAX類似,同樣有START_DOCUMENT、START_ELEMENT、CHARACTERS、END_ELEMENT、END_DOCUMENT

1、實例化XmlPullParser解析器,設置輸入編碼(setInput),獲得事件類型(getEventType),用SAX相同的處理進行,next()方法往下繼續讀取

三、DOCUMENT解析

1、實例化DocumentBuilderFactory,代碼如下:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

Document document = builder.parse(input);

Element root = document.getDocumentElement();

2、跟xml傳入的數據結構進行處理

3、返回需要的列表值即可

工程下載:ParseTest.rar

四、三者區別

DOM:

解析器讀入整個文檔,然後構建一個駐留內存的樹結構,然後代碼就可以使用 DOM 接口來操作這個樹結構。

優點:整個文檔樹在內存中,便於操作;支持刪除、修改、重新排列等多種功能;

缺點:將整個文檔調入內存(包括無用的節點),浪費時間和空間;

使用場合:一旦解析了文檔還需多次訪問這些數據;硬體資源充足(內存、CPU)

SAX/PULL:

事件驅動。當解析器發現元素開始、元素結束、文本、文檔的開始或結束等時,發送事件,程式設計師編寫響應這些事件的代碼,保存數據。

優點:不用事先調入整個文檔,佔用資源少

缺點:不是持久的;事件過後,若沒保存數據,那麼數據就丟了;無狀態性;從事件中只能得到文本,但不知該文本屬於哪個元素;

使用場合:只需XML文檔的少量內容,很少回頭訪問;一次性讀取;機器內存少;

注意:SAX 解析器不創建任何對象。

相關焦點

  • Python:將XML數據存儲到Pandas DataFrame中
    在這篇文章中,我們將討論如何使用python xml庫中的 「ElementTree」模塊來解析xml數據並將數據存儲在panda DataFrame中。首先,讓導入Python庫:import pandas as pdfrom xml.etree.ElementTree import parse現在,讓我們看一下'books.xml'文件中的標籤:我們可以通過將文件名傳遞給'parse()'方法來定義'XML'文檔對象:document = parse('books.xml')
  • 第41節 Document文檔節點-Javascript
    DOCTYPE html>如果存在文檔聲明,則將其作為document的第一個子節點,解析DOCUMENTTYPE_NODE類型,如果沒有聲明,則為null;註:DocumentType對象不能動態創建,它是只讀的;查找元素(選取文檔元素):在DOM中,取得特定的某個或某組元素,並執行一些操作,這是最重要的應用了;為了獲取文檔中的這些元素
  • 知無不「研」,DNA pull down 常見疑點解析
    適配子DNA單鏈,可以用帶有互補鏈的磁珠進行pull down嗎?如果可以,效率怎麼樣?一般需要怎麼優化條件?A:理論上說,若DNA單鏈能夠與磁珠上的互補鏈雜交成功,是可以進行pull down實驗的; 效率如何不好確定,這個取決於兩條DNA單鏈是否能雜交成功、蛋白-DNA結合的強弱、蛋白的豐度等。
  • Mybatis中SqlSource解析流程詳解
    解析sql的位置前面分析到不管是通過註解還是通過xml方式生成mapper,最終都是調用MapperBuilderAssistant類的addMappedStatement方法,這個方法接受的其中一個SqlSource參數,SqlSource類中就是XML文件或者註解方法中映射語句的實現
  • pull up和pull over
    這裡給大家介紹一下美語中pull up,pull over的意思及區別。pull up:讓行駛中的車輛停下。例如:My father pulled up at the traffic lights.pull over:讓行駛中的車輛離開主路,靠邊停車。
  • 開心時刻:"Pull over" and "pull-over"
    新東方網>英語>英語學習>語法詞彙>流行語>正文開心時刻:"Pull over" and "pull-over" 2006-12-21 09:59 來源:中國日報網站 作者:
  • pull 相關的短語動詞
    pull at sth = pull on sth 用力拉My daughter kept pulling at me to show me the toy she wanted for Christmas.我女兒不停地拉我,讓我看看她聖誕節想要的玩具。
  • Pull off
    例如:pull off a coup(做成一件漂亮事),pull off a scoop(搶先獲得獨家新聞)。
  • GST pull-down實驗
    pull-down實驗原理pull-down技術是將"誘餌"蛋白與一種易於純化的配體標籤
  • GST-pulldown操作流程
    GST pull-down實驗是一個行之有效的驗證酵母雙雜交系統的體外試驗技術,近年來越來越受到廣大學者的青睞。GST-pulldown主要包括以下三個部分:①利用基因重組技術構建帶有GST標籤的原核表達載體;②通過原核表達系統表達帶有GST標籤的融合蛋白;③利用GST親和純化柱進行蛋白純化獲得高純度的融合蛋白,再利用GST親和純化柱進行蛋白間的相互作用檢測。
  • 熟詞生義:「pull it off」不是指「把它拉開」!
    大家好,今天我們分享的一個表達「pull it off」, 它的中午含義並不是指「把它來開」,其真正的含義是:pull something off 成功做成(困難或出乎意料的事) 亦 pull it off
  • 《文明6》產能消耗費用計算等公式總結
    導 讀 《文明6》中各項數值都有一套詳細的計算公式,玩家可以從遊戲文件中找到,但是大部分玩家都看不懂,下面小編就為大家帶來《文明6》產能消耗、費用計算等公式總結
  • RNA pull down實驗技術
    RNA pull-down是檢測RNA結合蛋白與其靶RNA之間相互作用的主要實驗手段之一。
  • 教科書級別的RNA pull-down操作手冊,請收藏!
    上次Andy介紹到RNA pull-down的原理和做該實驗的準備工作,在萬事俱備以後,就可以開始為期三天的正式實驗了。我們這次的實驗流程是採用的生物素標記的磁珠法,也是比較常規的一種方法~RNA pull-down assay using Streptavidin magnetic beadsRNA pull-down 第一天——生物素探針標記RNA
  • 蛋白互作專題GST pull-down
    蛋白互作專題GST pull-down蛋白功能已成為當下研究的熱點之一,蛋白間相互作用在細胞的生命活動中起著關鍵作用。相互作用的蛋白之間通過形成複雜的功能性複合體,參與細胞內一系列的信號級聯反應,從而調控細胞及個體的生命活動。