最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在java中使用dom解析xml的示例分析

 更新時(shí)間:2013年05月03日 19:28:55   作者:  
本篇文章介紹了,在java中使用dom解析xml的示例分析。需要的朋友參考下

dom是個(gè)功能強(qiáng)大的解析工具,適用于小文檔

為什么這么說(shuō)呢?因?yàn)樗鼤?huì)把整篇xml文檔裝載進(jìn)內(nèi)存中,形成一顆文檔對(duì)象樹

總之聽起來(lái)怪嚇人的,不過(guò)使用它來(lái)讀取點(diǎn)小東西相對(duì)Sax而言還是挺方便的

至于它的增刪操作等,我是不打算寫了,在我看教程的時(shí)候我就差點(diǎn)被那代碼給丑到吐了

也正因?yàn)槿绱?,才有后?lái)那些jdom和dom4j等工具的存在……

不多說(shuō),直接上代碼

Dom解析示例

復(fù)制代碼 代碼如下:

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

 
public class Demo {

    public static void main(String[] args) throws Exception {
        //創(chuàng)建解析器工廠實(shí)例,并生成解析器
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        //創(chuàng)建需要解析的文檔對(duì)象
        File f = new File("books.xml");
        //解析文檔,并返回一個(gè)Document對(duì)象,此時(shí)xml文檔已加載到內(nèi)存中
        //好吧,讓解析來(lái)得更猛烈些吧,其余的事就是獲取數(shù)據(jù)了
        Document doc = builder.parse(f);

        //獲取文檔根元素
        //你問我為什么這么做?因?yàn)槲臋n對(duì)象本身就是樹形結(jié)構(gòu),這里就是樹根
        //當(dāng)然,你也可以直接找到元素集合,省略此步驟
        Element root = doc.getDocumentElement();

        //上面找到了根節(jié)點(diǎn),這里開始獲取根節(jié)點(diǎn)下的元素集合
        NodeList list = root.getElementsByTagName("book");

        for (int i = 0; i < list.getLength(); i++) {
            //通過(guò)item()方法找到集合中的節(jié)點(diǎn),并向下轉(zhuǎn)型為Element對(duì)象
            Element n = (Element) list.item(i);
            //獲取對(duì)象中的屬性map,用for循環(huán)提取并打印
            NamedNodeMap node = n.getAttributes();
            for (int x = 0; x < node.getLength(); x++) {
                Node nn = node.item(x);
                System.out.println(nn.getNodeName() + ": " + nn.getNodeValue());
            }
            //打印元素內(nèi)容,代碼很糾結(jié),差不多是個(gè)固定格式
            System.out.println("title: " +n.getElementsByTagName("title").item(0).getFirstChild().getNodeValue());
            System.out.println("author: " + n.getElementsByTagName("author").item(0).getFirstChild().getNodeValue());
            System.out.println();
        }
    }

}

 輸出結(jié)果:

相關(guān)文章

  • Java獲取電腦真實(shí)IP地址的示例代碼

    Java獲取電腦真實(shí)IP地址的示例代碼

    這篇文章主要介紹了Java如何獲取電腦真實(shí)IP地址,忽略虛擬機(jī)等IP地址的干擾,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-09-09
  • Java執(zhí)行Linux命令簡(jiǎn)單代碼舉例

    Java執(zhí)行Linux命令簡(jiǎn)單代碼舉例

    這篇文章主要給大家介紹了關(guān)于Java執(zhí)行Linux命令的相關(guān)資料,在開發(fā)的過(guò)程中要善于利用JAVA面向?qū)ο缶幊痰膬?yōu)勢(shì),與Linux/Unix命令或Shell腳本的優(yōu)勢(shì),并將二者相結(jié)合,需要的朋友可以參考下
    2023-12-12
  • Java?HashMap中除了死循環(huán)之外的那些問題

    Java?HashMap中除了死循環(huán)之外的那些問題

    這篇文章主要介紹了Java?HashMap中除了死循環(huán)之外的那些問題,這些問題大致可以分為兩類,程序問題和業(yè)務(wù)問題,下面文章我們一個(gè)一個(gè)來(lái)看,需要的小伙伴可以參考一下
    2022-05-05
  • Java分布式事務(wù)管理框架之Seata

    Java分布式事務(wù)管理框架之Seata

    這篇文章主要介紹了Java分布式事務(wù)框架Seata,分布式事務(wù)是指事務(wù)的參與者、支持事務(wù)的服務(wù)器、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點(diǎn)之上
    2022-07-07
  • Java字符串轉(zhuǎn)成二進(jìn)制碼的方法

    Java字符串轉(zhuǎn)成二進(jìn)制碼的方法

    這篇文章主要為大家詳細(xì)介紹了Java字符串轉(zhuǎn)成二進(jìn)制碼的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一
    2017-05-05
  • MyBatis與Spring整合過(guò)程實(shí)例解析

    MyBatis與Spring整合過(guò)程實(shí)例解析

    這篇文章主要介紹了MyBatis與Spring整合過(guò)程實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Java中replace的用法實(shí)例講解

    Java中replace的用法實(shí)例講解

    這篇文章主要給大家介紹了關(guān)于Java中replace用法的相關(guān)資料,Java中的replace方法是用于字符串替換的方法,它可以接受兩個(gè)參數(shù),第一個(gè)參數(shù)是需要被替換的字符串,第二個(gè)參數(shù)是替換后的字符串,需要的朋友可以參考下
    2024-04-04
  • 以Java代碼為例講解設(shè)計(jì)模式中的簡(jiǎn)單工廠模式

    以Java代碼為例講解設(shè)計(jì)模式中的簡(jiǎn)單工廠模式

    簡(jiǎn)單來(lái)說(shuō),工廠模式就是按照需求來(lái)返回一個(gè)類型的對(duì)象,使用工廠模式的意義就是,如果對(duì)象的實(shí)例化與代碼依賴太大的話,不方便進(jìn)行擴(kuò)展和維護(hù),使用工廠的目的就是使對(duì)象的實(shí)例化與主程序代碼就行解耦.來(lái)具體看一下:
    2016-05-05
  • Java中String、StringBuffer、StringBuilder的區(qū)別詳解

    Java中String、StringBuffer、StringBuilder的區(qū)別詳解

    java中String、StringBuffer、StringBuilder是編程中經(jīng)常使用的字符串類,他們之間有什么區(qū)別呢?下面小編給大家總結(jié)了Java中String、StringBuffer、StringBuilder的區(qū)別詳解,需要的朋友參考下吧
    2016-06-06
  • JPA如何使用nativequery多表關(guān)聯(lián)查詢返回自定義實(shí)體類

    JPA如何使用nativequery多表關(guān)聯(lián)查詢返回自定義實(shí)體類

    這篇文章主要介紹了JPA如何使用nativequery多表關(guān)聯(lián)查詢返回自定義實(shí)體類,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評(píng)論

博兴县| 龙陵县| 玛纳斯县| 湖北省| 延边| 张家界市| 浮梁县| 旬阳县| 白银市| 松滋市| 恩施市| 玉山县| 莒南县| 保山市| 平果县| 晋州市| 内乡县| 日喀则市| 长兴县| 大冶市| 连城县| 江北区| 白水县| 平江县| 黄骅市| 山东| 阿荣旗| 资阳市| 汪清县| 武安市| 昌吉市| 新兴县| 沛县| 彭州市| 财经| 明溪县| 加查县| 墨江| 宣武区| 伊春市| 尚志市|