激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java DOM4J 讀取XML實例代碼

java DOM4J 讀取XML實例代碼

2019-10-13 14:49java之家 Java教程

最近學習Java,在處理XML文檔的時候,查閱相關資料,發現了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");

        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節點");
            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() + ">");

    }

    /**
     * 遞歸節點
     * 
     * @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();
    }

    /**
     * 獲取當前節點的屬性的值的字符串
     * 
     * @description
     * @param element
     *            當前節點
     * @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節點
     * @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()這個方法來判斷時候還有子節點
        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節點
     * 
     * @param document
     * @return
     */
    public static Element getRootElement(Document document) {
        return document.getRootElement();
    }

}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩一区二区综合 | 久久久久久片 | 99热99精品 | 亚洲精品欧美二区三区中文字幕 | 国产亚洲精品久久午夜玫瑰园 | 日本黄色免费观看视频 | 666sao| 久久久久久久一区 | 亚洲精久久 | 亚洲一区二区在线 | 欧美成人精品欧美一级 | 精品中文字幕在线观看 | 国产色视频免费 | 欧美日韩国产一区二区三区在线观看 | 成年性羞羞视频免费观看无限 | 一级做a爱片毛片免费 | 九九热这里只有精品8 | 午夜视频在线看 | 国产一区二区视频在线播放 | 最新91在线视频 | 成人一级免费视频 | 亚洲欧美日韩精品久久 | 久久精品久久久久 | 精品一区二区在线观看视频 | 精品成人国产在线观看男人呻吟 | 日日噜噜噜夜夜狠狠久久蜜桃 | 精品国产一区在线观看 | 国产精品久久久乱弄 | 日本一道aⅴ不卡免费播放 久久久久久久高清 | 欧美一级片免费在线观看 | 成年性羞羞视频免费观看无限 | 久久精品亚洲欧美日韩精品中文字幕 | 久久久精品视频免费看 | av在线免费观看网址 | 日本成人一二三区 | 在线成人av观看 | 成人毛片视频免费 | 久久9久久 | 久久精品a一级国产免视看成人 | 久久精品视频12 | 亚洲福利视频52 |