java非递归实现Xml的遍历(多叉树遍历)
来源:互联网 发布:excel防止数据粘贴 编辑:程序博客网 时间:2024/06/06 15:54
import java.util.HashMap;
import java.util.List;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Stack;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class XMLDocParser2 {
Stack<Element> a = null;//栈
private HashMap<String,Element> map = new HashMap<String,Element>();// <Element Name,Element>
//保存除根节点之外的所有节点
public void parseXml(String xmlContent) throws Exception{
SAXReader reader = new SAXReader();Document doc;
java.io.BufferedInputStream is =null;
try
{
is = new java.io.BufferedInputStream(new java.io.ByteArrayInputStream(xmlContent.getBytes("UTF-8")));
doc = reader.read(is);
Element root = doc.getRootElement();
getLeafNodes(root);
}catch (DocumentException e){
e.printStackTrace();
}finally{
try {
if(is!=null){
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void getLeafNodes(Element rootNode){
a = new Stack<Element>();
//将根节点压入栈
a.push(rootNode);
if(rootNode.elements().size()==0||rootNode.elements()==null){
System.out.println("根节点没有子节点");
}
Element e = null;//e表示当前栈顶元素
while(!a.empty()){
e = a.peek();//获取栈顶元素
a.pop();//将栈顶元素出栈
String elementTag = e.getName();
map.put(elementTag,xmle);
List list = e.elements();int size = e.elements().size();
//对栈顶元素进行反向遍历,入栈
for(int i= size-1;i>=0;i--){a.push((Element)e.elements().get(i));
}
}
}
public static void main(String[] args) throws Exception {
String xml="<html><head></head><body><mm>123</mm><oo>xxx</oo><nn>123456</nn></body></html>";
XMLDocParser2 a = new XMLDocParser2();
a.parseXml(xml);
}
}
0 0
- java非递归实现Xml的遍历(多叉树遍历)
- Java实现二叉树的递归与非递归遍历
- Java实现二叉树的创建、递归/非递归遍历
- 递归与非递归实现树的遍历(java)
- Java实现二叉树的递归、非递归遍历
- 递归非递归实现树的遍历
- Java实现的二叉树的非递归遍历
- java 二叉树的递归遍历和非递归遍历
- 非递归遍历二叉树--java实现
- 二叉树非递归遍历Java实现
- java实现二叉树的非递归遍历
- java中实现二叉树的非递归遍历
- 二叉树的非递归遍历——java实现
- 二叉树遍历的非递归实现 java版本
- 二叉树的非递归遍历---JAVA实现
- 二叉树遍历的非递归实现(java版)
- java非递归实现二叉树的遍历
- 二叉树的非递归遍历(java实现)
- 碰撞有趣风格 简约混搭风格美宅
- java反射
- 素数筛选法
- UDP服务器端和客户端程序设计
- android中常用的弹出提示框
- java非递归实现Xml的遍历(多叉树遍历)
- 欢迎使用CSDN-markdown编辑器
- Kafka剖析(一):Kafka背景及架构介绍
- 【转】【UNITY3D 游戏开发之七】C# 中的委托、事件、匿名函数、Lambda 表达式
- Android四大组件之Activity
- 关于jquery的this的一点小经验
- centos rpm安装jdk
- Kafka设计解析(二):Kafka High Availability (上)
- 第8周项目1-实现复数类中的运算符重载(2)