成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Dom4j遞歸遍歷XML所有元素

開發 后端
本文向您介紹使用Dom4j做一個遞歸遍歷XML的例子,為更為復雜的解析工作做基礎。

目標:使用JOM4j遍歷所有的元素節點,并且取出來其中的值,結果打印到控制臺。 源代碼如下:本程序依賴DOM4j包。

import org.dom4j.Document; 
import org.dom4j.DocumentHelper; 
import org.dom4j.DocumentException; 
import org.dom4j.Element; 

import java.util.*; 

/** 
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-4-14 14:02:12
* Note: Java遞歸遍歷XML所有元素 */ public class XmlTest { // private static Map xmlmap = new HashMap(); //存儲xml元素信息的容器 private static List elemList = new ArrayList(); //要測試的xml對象 private static String srcXml = "\n" + "\n" + " \n" + " 某人\n" + " \n" + " \n" + " 10002\n" + " 西安市太白路\n" + " \n" + " \n" + " 10002\n" + " 空ID節點啊\n" + " \n" + " \n" + " 10002\n" + " 空ID節點啊\n" + " \n" + "\t\t\t\n" + "\t\t\t\t\n" + " 西安市太白路2\n" + " \n" + "\t\t\n" + " \n" + " \n" + " ASDF\n" + " \n" + ""; public static void main(String args[]) throws DocumentException { XmlTest test = new XmlTest(); Element root = test.getRootElement(); test.getElementList(root); String x = test.getListString(elemList); System.out.println("-----------原xml內容------------"); System.out.println(srcXml); System.out.println("-----------解析結果------------"); System.out.println(x); } /** * 獲取根元素 * * @return * @throws DocumentException */ public Element getRootElement() throws DocumentException { Document srcdoc = DocumentHelper.parseText(srcXml); Element elem = srcdoc.getRootElement(); return elem; } /** * 遞歸遍歷方法 * * @param element */ public void getElementList(Element element) { List elements = element.elements(); if (elements.size() == 0) { //沒有子元素 String xpath = element.getPath(); String value = element.getTextTrim(); elemList.add(new Leaf(xpath, value)); } else { //有子元素 for (Iterator it = elements.iterator(); it.hasNext();) { Element elem = (Element) it.next(); //遞歸遍歷 getElementList(elem); } } } public String getListString(List elemList) { StringBuffer sb = new StringBuffer(); for (Iterator it = elemList.iterator(); it.hasNext();) { Leaf leaf = it.next(); sb.append(leaf.getXpath()).append(" = ").append(leaf.getValue()).append("\n"); } return sb.toString(); } } /** * xml節點數據結構 */ class Leaf { private String xpath; // private String value; public Leaf(String xpath, String value) { this.xpath = xpath; this.value = value; } public String getXpath() { return xpath; } public void setXpath(String xpath) { this.xpath = xpath; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } }

運行結果: -----------原xml內容------------

 
 
     
        某人 
                     
             
                10002 
                西安市太白路 
             
             
                10002 
                空ID節點啊 
             
             
                10002 
                空ID節點啊 
             
       
     
                西安市太白路2 
             
   
     
     
        ASDF 
     
 
-----------解析結果------------ 
/doc/person/name = 某人 
/doc/person/adds/add/BS = 10002 
/doc/person/adds/add/note = 西安市太白路 
/doc/person/adds/add/BS = 10002 
/doc/person/adds/add/note = 空ID節點啊 
/doc/person/adds/add/BS = 10002 
/doc/person/adds/add/note = 空ID節點啊 
/doc/person/adds/add/*[name()='BS'] =  
/doc/person/adds/add/note = 西安市太白路2 
/doc/other/name = ASDF

Process finished with exit code 0 可以發現,有很多xpath相同的值域。

【編輯推薦】

  1. 高手Java核心技術學習筆記
  2. 如何使用 JavaScript XSLT 處理 XML 文件
  3. JSP結合XML+XSLT將輸出轉換HTML
  4. Java通過JNI調用C語言的方法
  5. JAVA環境變量的設置
責任編輯:王觀 來源: 賽迪網
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产激情在线 | 国产高清毛片 | 成人免费影院 | 国产区精品| 成人在线播放 | 日本不卡高字幕在线2019 | 欧美日韩成人在线观看 | 国产成人精品亚洲日本在线观看 | 久久中文字幕在线 | 日韩中文字幕 | 免费黄色av网站 | 国产欧美精品一区二区 | 国产精品99久久久久久大便 | 亚洲午夜精品一区二区三区 | 色婷婷九月 | 国产精品日日夜夜 | 色婷婷av一区二区三区软件 | 国产在线精品一区二区三区 | 精品国产一区二区久久 | 2019天天干夜夜操 | 久久久久久久久久久一区二区 | 一区二区在线不卡 | 国产在线观看一区二区三区 | 日本欧美大片 | 国产免费麻豆视频 | 久久久久国产一级毛片高清网站 | 国产aⅴ爽av久久久久久久 | 日韩欧美专区 | 日韩在线播放第一页 | 国产视频久久 | 蜜桃视频在线观看免费视频网站www | 中文字幕视频在线观看 | 97精品一区二区 | 操久久 | 亚洲久久一区 | 国产精品区一区二 | 久久精品黄色 | 风间由美一区二区三区在线观看 | 在线第一页 | 国产精品99久久久久久动医院 | 亚洲视频一区在线观看 |