Dom4j递归输出所有的接点和值
来源:互联网 发布:java 单例模型 编辑:程序博客网 时间:2024/05/06 21:48
Dom4j递归输出所有的接点和值
这个程序是一个要显示程序调用关系xml配置,帮同事写的,拿出来分享下:
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import java.util.List;
/**
* Dom4j递归输出所有的接点和值
*
* @author leizhimin 12-11-9 下午3:48
*/
public class Test {
public staticvoid main(String[] args) throws DocumentException {
Document doc = DocumentHelper.parseText(xml);
Element root = doc.getRootElement();
doit(root);
}
private staticvoid doit(Element e) {
List<Element> els = e.elements();
for (Element el : els) {
//判断是否复合节点
if(!el.hasMixedContent()){
System.out.println(el.getPath()+":"+el.getText());
}else{
System.out.println(el.getPath());
doit(el);
}
}
}
private static String xml ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<app>\n" +
"\t<srv>\n" +
"\t\t<cn>aaaaaaaaaaaaaaaaaaaaaa</cn>\n" +
"\t\t<mn>modifyService</mn>\n" +
"\t\t<srv>\n" +
"\t\t\t<cn>com.asiainfo.aisc.sc.service.impl.FraScServiceInfoSVImpl1</cn>\n" +
"\t\t\t<mn>getServiceInfo</mn>\n" +
"\t\t</srv>\n" +
"\t\t<srv>\n" +
"\t\t\t<cn>com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl2</cn>\n" +
"\t\t\t<mn>getAllTableSplitFunction</mn>\n" +
"\t\t\t<srv>\n" +
"\t\t\t\t<cn>com.ai.appframe2.complex.self.service.base.impl.AbcdeImpl3</cn>\n" +
"\t\t\t\t<mn>getAbcdef</mn>\n" +
"\t\t\t\t<srv>\n" +
"\t\t\t\t\t<cn>com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl4</cn>\n" +
"\t\t\t\t\t<mn>getAllDyncTableSplit</mn>\n" +
"\t\t\t\t</srv>\n" +
"\t\t\t</srv>\n" +
"\t\t</srv>\n" +
"\t\t<srv>\n" +
"\t\t\t<cn>com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl5</cn>\n" +
"\t\t\t<mn>getAllTableSplitMapping</mn>\n" +
"\t\t\t<srv>\n" +
"\t\t\t\t<cn>com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl6</cn>\n" +
"\t\t\t\t<mn>getAllIdGenerator</mn>\n" +
"\t\t\t</srv>\n" +
"\t\t</srv>\n" +
"\t\t<srv>\n" +
"\t\t\t<cn>com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl7</cn>\n" +
"\t\t\t<mn>getAllIdGenerator</mn>\n" +
"\t\t</srv>\n" +
"\t</srv>\n" +
"</app>\n";
}
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import java.util.List;
/**
* Dom4j递归输出所有的接点和值
*
* @author leizhimin 12-11-9 下午3:48
*/
public class Test {
public staticvoid main(String[] args) throws DocumentException {
Document doc = DocumentHelper.parseText(xml);
Element root = doc.getRootElement();
doit(root);
}
private staticvoid doit(Element e) {
List<Element> els = e.elements();
for (Element el : els) {
//判断是否复合节点
if(!el.hasMixedContent()){
System.out.println(el.getPath()+":"+el.getText());
}else{
System.out.println(el.getPath());
doit(el);
}
}
}
private static String xml ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<app>\n" +
"\t<srv>\n" +
"\t\t<cn>aaaaaaaaaaaaaaaaaaaaaa</cn>\n" +
"\t\t<mn>modifyService</mn>\n" +
"\t\t<srv>\n" +
"\t\t\t<cn>com.asiainfo.aisc.sc.service.impl.FraScServiceInfoSVImpl1</cn>\n" +
"\t\t\t<mn>getServiceInfo</mn>\n" +
"\t\t</srv>\n" +
"\t\t<srv>\n" +
"\t\t\t<cn>com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl2</cn>\n" +
"\t\t\t<mn>getAllTableSplitFunction</mn>\n" +
"\t\t\t<srv>\n" +
"\t\t\t\t<cn>com.ai.appframe2.complex.self.service.base.impl.AbcdeImpl3</cn>\n" +
"\t\t\t\t<mn>getAbcdef</mn>\n" +
"\t\t\t\t<srv>\n" +
"\t\t\t\t\t<cn>com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl4</cn>\n" +
"\t\t\t\t\t<mn>getAllDyncTableSplit</mn>\n" +
"\t\t\t\t</srv>\n" +
"\t\t\t</srv>\n" +
"\t\t</srv>\n" +
"\t\t<srv>\n" +
"\t\t\t<cn>com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl5</cn>\n" +
"\t\t\t<mn>getAllTableSplitMapping</mn>\n" +
"\t\t\t<srv>\n" +
"\t\t\t\t<cn>com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl6</cn>\n" +
"\t\t\t\t<mn>getAllIdGenerator</mn>\n" +
"\t\t\t</srv>\n" +
"\t\t</srv>\n" +
"\t\t<srv>\n" +
"\t\t\t<cn>com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl7</cn>\n" +
"\t\t\t<mn>getAllIdGenerator</mn>\n" +
"\t\t</srv>\n" +
"\t</srv>\n" +
"</app>\n";
}
输出结果:
/app/srv
/app/srv/cn:aaaaaaaaaaaaaaaaaaaaaa
/app/srv/mn:modifyService
/app/srv/srv
/app/srv/srv/cn:com.asiainfo.aisc.sc.service.impl.FraScServiceInfoSVImpl1
/app/srv/srv/mn:getServiceInfo
/app/srv/srv
/app/srv/srv/cn:com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl2
/app/srv/srv/mn:getAllTableSplitFunction
/app/srv/srv/srv
/app/srv/srv/srv/cn:com.ai.appframe2.complex.self.service.base.impl.AbcdeImpl3
/app/srv/srv/srv/mn:getAbcdef
/app/srv/srv/srv/srv
/app/srv/srv/srv/srv/cn:com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl4
/app/srv/srv/srv/srv/mn:getAllDyncTableSplit
/app/srv/srv
/app/srv/srv/cn:com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl5
/app/srv/srv/mn:getAllTableSplitMapping
/app/srv/srv/srv
/app/srv/srv/srv/cn:com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl6
/app/srv/srv/srv/mn:getAllIdGenerator
/app/srv/srv
/app/srv/srv/cn:com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl7
/app/srv/srv/mn:getAllIdGenerator
Process finished with exit code 0
/app/srv/cn:aaaaaaaaaaaaaaaaaaaaaa
/app/srv/mn:modifyService
/app/srv/srv
/app/srv/srv/cn:com.asiainfo.aisc.sc.service.impl.FraScServiceInfoSVImpl1
/app/srv/srv/mn:getServiceInfo
/app/srv/srv
/app/srv/srv/cn:com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl2
/app/srv/srv/mn:getAllTableSplitFunction
/app/srv/srv/srv
/app/srv/srv/srv/cn:com.ai.appframe2.complex.self.service.base.impl.AbcdeImpl3
/app/srv/srv/srv/mn:getAbcdef
/app/srv/srv/srv/srv
/app/srv/srv/srv/srv/cn:com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl4
/app/srv/srv/srv/srv/mn:getAllDyncTableSplit
/app/srv/srv
/app/srv/srv/cn:com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl5
/app/srv/srv/mn:getAllTableSplitMapping
/app/srv/srv/srv
/app/srv/srv/srv/cn:com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl6
/app/srv/srv/srv/mn:getAllIdGenerator
/app/srv/srv
/app/srv/srv/cn:com.ai.appframe2.complex.self.service.base.impl.BaseSVImpl7
/app/srv/srv/mn:getAllIdGenerator
Process finished with exit code 0
本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/1055280
- Dom4j递归输出所有的接点和值
- dom4j使用递归的方法输出xml元素的所有值
- dom4j递归遍历XML的所有元素
- Dom4j解析xml文件-递归遍历所有节点和属性
- Dom4j解析xml文件-递归遍历所有节点和属性
- Dom4j解析xml文件-递归遍历所有节点和属性
- Dom4j解析xml文件-递归遍历所有节点和属性
- Dom4j解析xml文件-递归遍历所有节点和属性
- 关于‘Dom4j递归遍历XML所有元素 ’的一点看法
- 【递归】输出一个字符串的所有排列
- 递归输出char数组的所有排列
- 输出字符串的所有全排列(递归法和非递归,非递归采用组合数学的字典序)
- dom4j做xml的解析和输出
- JAVA:递归实现输出正整数和等于n的所有不增的正整数和式
- 输出xxx录下的所有后缀名和对应的个数(递归)
- 干接点(干节点)和湿接点(湿节点)的定义、使用场合和调理方法
- 递归输出ASP.NET页面所有控件的类型和ID
- 递归输出ASP.NET页面所有控件的类型和ID
- linux内核学习笔记:进程、进程组、会话
- windows 7 64位无法连接到HP5200LX打印机 (错误 0x0000007e)的解决方法
- C# 控件 单双击并存的解决办法
- Oracle kill sessin 说明 .
- GDI+ 透明窗口.UpdateLayeredWindow
- Dom4j递归输出所有的接点和值
- poj1200-CrazySearch(Rabin-Karp Hash)
- 解析VC++ Name Mangling 机制
- Oracle云数据库初体验 之一 - 申请与介绍
- jquery去掉点击文字,图片,按钮时出现的虚线
- Can not find a java.io.InputStream with the name [] in the invocation stack 解决办法
- unix基础---有关于孤儿进程组和终端会话的理解-------值得一看!!!
- C programe (The second day of the training of cognizant )
- oracle 日期计算