Core Java學習筆記 XML

          Posted on 2009-07-09 13:20 eric_xu 閱讀(199) 評論(0)  編輯  收藏 所屬分類: Java

          DOM(Document Object Model)解析器讀入的是一個完整的XML文檔,然后將其轉化為一個樹形結構。適合數據量不大的解析。

          Document對象是XML文檔的樹形結構在內存中的表現。

          要讀入一個文檔,首先要一個DocumentBuilder對象,你可以從DocumentBuilderFactory工廠中得到。

          DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

          DocumentBuilder builder0020= factory.newDocumentBuilder();

           

          File f = "xx.xml";
          Document doc = builder.parse(f);
          或是用一個url
          URL u = ......
          Document doc = builder.parse(u);
          還可以是任意的輸入流
          InputStream in = .......
          Document doc = builder.parse(in);

           

          它有實現Node接口以及其它子接口的類對象構成。

          可以調用getDocumentElement方法來分析文檔內容,它將返回跟元素
          Element root = doc.getDocumentElement();

           

          String getTagName()返回元素的標簽名。

          NodeList getChildNodes()得到該元素的子元素,它將返回一個NodeList集合。

          String getAttribute()返回屬性值。

          trim()把實際數據前后的空白字符刪掉。

          org.w3c.dom.Node

           

          DTDXML schema包含了用于解釋文檔是如何構成的規則。

           

          SAX解析器是在解析XML輸入的構件時就報告事件,但不會以任何方式存儲文檔,有事件處理器決定是否要建立數據結構,實際上,DOM解析器是在SAX解析器基礎上建立起來的。

          SAX解析時,需要一個處理器來解析,要實現ContentHandler 接口,他定義了很多回調方法。

          startElementendElement 在每當遇到起始或結束時各調用一次。
          characters
          每當遇到字符時調用,
          startDocument
          endDocument分別在文檔開始和結束時各調用一次。

           

          SAXParserFactory saxfactory = SAXParserFactory.newInstance();

          SAXParser parser = saxfactory.newSAXParser();

          parser.parse(source, handler); //source是要處理的文件,handler處理器的一個子類

          defaultHandler實現了四個接口。

          ContentHandler

          DTDHandler

          EntityResolver

          ErrorHandler

          public class DefaultHandler

          implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler

          posts - 37, comments - 5, trackbacks - 0, articles - 0

          Copyright © eric_xu

          主站蜘蛛池模板: 青神县| 舟曲县| 那曲县| 宁城县| 定陶县| 尼玛县| 金川县| 乌鲁木齐县| 塔河县| 承德市| 集安市| 双峰县| 伊宁市| 游戏| 台州市| 沂南县| 余江县| 涟水县| 鄂托克前旗| 固镇县| 河西区| 阿图什市| 黄山市| 应用必备| 边坝县| 句容市| 措勤县| 宁阳县| 涞水县| 马尔康县| 衡南县| 邳州市| 和田县| 溧阳市| 永善县| 闻喜县| 湖南省| 蒲城县| 南和县| 方山县| 大城县|