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

java DOM4J 讀取XML實例代碼

 更新時間:2013年09月09日 15:26:00   作者:  
最近學習Java,在處理XML文檔的時候,查閱相關(guān)資料,發(fā)現(xiàn)了DOM4J這個jre庫,相對C#的XML處理來說,功能還算是跟得

下面展示一篇我自己寫的一個XML讀取測試

復制代碼 代碼如下:

import java.util.Iterator;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import org.dom4j.*;
import org.dom4j.io.SAXReader;

public class XmlRead {

    static StringBuilder sBuilder = new StringBuilder();

    public static void main(String[] args) throws IOException {

        BufferedReader bReader = new BufferedReader(new InputStreamReader(
                System.in));
        String path = null;
        System.out.println("請輸入XML文件的絕對路徑以及文件名:\n");
        path = bReader.readLine();

        sBuilder.append("開始輸出XML文件內(nèi)容\n");

        Document document = null;
        try {
            document = read(path);
            sBuilder.append(path + "\n");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }

        Element root = getRootElement(document);
        if (root == null) {
            System.out.print("沒有獲取到root節(jié)點");
            return;
        }
        // 獲取XML文檔的編碼格式
        String encString = document.getXMLEncoding();
        sBuilder.append("<?xml version=\"1.0\" encoding=\"" + encString
                + "\">\n");
        sBuilder.append(elementText(root, attText(root), 0));

        System.out.println(getIterator(root, 0) + "</" + root.getName() + ">");

    }

    /**
     * 遞歸節(jié)點
     *
     * @description
     * @param element
     * @param lvl
     *            層級
     * @return
     */
    private static String getIterator(Element element, int lvl) {

        lvl += 1;

        for (Iterator i = element.elementIterator(); i.hasNext();) {
            Element e = (Element) i.next();
            sBuilder.append(elementText(e, attText(e), lvl));
            getIterator(e, lvl);

            int count = e.nodeCount();

            if (count > 0) {
                for (int j = 0; j < lvl; j++) {
                    sBuilder.append("    ");
                }
            }
            sBuilder.append("</" + e.getName() + ">\n");
        }

        return sBuilder.toString();
    }

    /**
     * 獲取當前節(jié)點的屬性的值的字符串
     *
     * @description
     * @param element
     *            當前節(jié)點
     * @return
     */
    private static String attText(Element element) {

        String str = " ";
        for (int i = 0; i < element.attributeCount(); i++) {
            Attribute attribute = element.attribute(i);

            str += attribute.getName() + "=\"" + attribute.getValue() + "\" ";
        }
        return str;
    }

    /**
     * 獲取當前Element的文本值
     *
     * @description
     * @param element
     *            當前Element節(jié)點
     * @param text
     *            屬性值
     * @param lvl
     *            層級
     * @return
     */
    private static String elementText(Element element, String text, int lvl) {
        String str = "";
        for (int i = 0; i < lvl; i++) {
            str += "    ";
        }
        str += "<" + element.getName();
        if (text != null && text != "") {
            str += text;
        }
     //由于dom4j里面沒有 hasChild這個屬性或者方法,所以要用nodeCount()這個方法來判斷時候還有子節(jié)點
        int count = element.nodeCount();
        if (count == 0) {
            return str += ">";
        }
        return str += ">\n";
    }

    /**
     *
     * @description 讀取XML文件
     * @param file
     *            XML文件路徑,包含文件名
     * @return Document 文檔
     * @throws MalformedURLException
     * @throws DocumentException
     */
    public static Document read(String file) throws MalformedURLException,
            DocumentException {

        SAXReader reader = new SAXReader();
        Document document = reader.read(new File(file));
        return document;
    }

    /**
     * 獲取Document文檔的root節(jié)點
     *
     * @param document
     * @return
     */
    public static Element getRootElement(Document document) {
        return document.getRootElement();
    }

}

相關(guān)文章

  • Java:com.netflix.client.ClientException錯誤解決

    Java:com.netflix.client.ClientException錯誤解決

    本文主要介紹了Java:com.netflix.client.ClientException錯誤解決,主要是指出客戶端?module-sso?試圖通過負載均衡器訪問服務時,負載均衡器沒有找到可用的服務器來處理請求,下面就來介紹一下解決方法
    2024-08-08
  • Struts2中validate數(shù)據(jù)校驗的兩種方法詳解附Struts2常用校驗器

    Struts2中validate數(shù)據(jù)校驗的兩種方法詳解附Struts2常用校驗器

    這篇文章主要介紹了Struts2中validate數(shù)據(jù)校驗的兩種方法及Struts2常用校驗器,本文介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-09-09
  • Spring MVC整合Kaptcha的具體使用

    Spring MVC整合Kaptcha的具體使用

    Kaptcha 是一個可高度配置的實用驗證碼生成工具,本文主要介紹了Spring MVC整合Kaptcha的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • 詳解Java獲取環(huán)境變量及系統(tǒng)屬性的方法

    詳解Java獲取環(huán)境變量及系統(tǒng)屬性的方法

    這篇文章主要介紹了詳解Java獲取環(huán)境變量及系統(tǒng)屬性的方法,講解了System.getEnv()和System.getProperties()這兩個核心方法的使用,需要的朋友可以參考下
    2016-05-05
  • jackson在springboot中的使用方式-自定義參數(shù)轉(zhuǎn)換器

    jackson在springboot中的使用方式-自定義參數(shù)轉(zhuǎn)換器

    這篇文章主要介紹了jackson在springboot中的使用方式-自定義參數(shù)轉(zhuǎn)換器,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java基礎(chǔ)之Maven詳解

    Java基礎(chǔ)之Maven詳解

    這篇文章主要介紹了Java基礎(chǔ)之Maven詳解,文中有非常詳細的代碼示例,對正在學習java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java中Object.equals和String.equals的區(qū)別詳解

    Java中Object.equals和String.equals的區(qū)別詳解

    這篇文章主要給大家介紹了Java中Object.equals和String.equals的區(qū)別,文中通過一個小示例讓大家輕松的明白這兩者的區(qū)別,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-04-04
  • 關(guān)于弱引用WeakReference所引用的對象的回收規(guī)則

    關(guān)于弱引用WeakReference所引用的對象的回收規(guī)則

    這篇文章主要介紹了關(guān)于弱引用WeakReference所引用的對象的回收規(guī)則,如果一個弱引用實例的成員變量referent引用了一個對象obj,那么就稱這個弱引用實例對obj的引用是弱引用,被一個弱引用實例引用的對象,稱為弱引用對象,需要的朋友可以參考下
    2023-09-09
  • 微信小程序+后端(java)實現(xiàn)開發(fā)

    微信小程序+后端(java)實現(xiàn)開發(fā)

    這篇文章主要介紹了微信小程序+后端(java)實現(xiàn)開發(fā),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • Java實現(xiàn)學生成績管理系統(tǒng)

    Java實現(xiàn)學生成績管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)學生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04

最新評論

青海省| 卢氏县| 内乡县| 四川省| 遂平县| 利辛县| 化德县| 天门市| 图片| 丹棱县| 桦川县| 久治县| 富宁县| 青州市| 琼海市| 星座| 汪清县| 子长县| 陵川县| 美姑县| 武清区| 原阳县| 资阳市| 云阳县| 洪雅县| 县级市| 台北市| 措勤县| 同仁县| 民勤县| 司法| 军事| 邮箱| 吴江市| 常山县| 太原市| 温宿县| 历史| 凤翔县| 陕西省| 内乡县|