xml 树状显示
来源:互联网 发布:mac 计时钟表 编辑:程序博客网 时间:2024/04/30 13:51
xml文件树状显示,dom解析
效果如下:
test.xml
|--students
|--student
| |--name
| | |--e
| | |--g:ggggggg
| |--k
| | |--m:mmmm
| |--a
| | |--v:vvvvvvvvv
| |--c
| | |--t
| | |--as:asasas
| |--d:dddddd
| |--b:bbbb
| |--age:20
|--student
|--name:ls
|--a:aaaa
|--c:cccccc
|--d:dddddd
|--b:bbbb
|--age:20
代码如下:
import javax.xml.parsers.*;
import org.w3c.dom.*;import java.io.*;
public class TreeXml
{
private int []is=new int[20] ;
public void walkNode(Node node,int n)
{
NodeList nodeList=node.getChildNodes();
int len=nodeList.getLength();
is[n+1]=(len-1)/2;
switch(node.getNodeType())
{
case Node.DOCUMENT_NODE:
printName(node,n);
nodeList=node.getChildNodes();
n++;
for(int i=0;i<nodeList.getLength();i++)
walkNode(nodeList.item(i),n);
break;
case Node.ELEMENT_NODE:
nodeList=node.getChildNodes();
if(nodeList.getLength()>1)
{
printName(node,n);
n++;
for(int i=0;i<nodeList.getLength();i++)
walkNode(nodeList.item(i),n);
}
else
printNameValue(node,n);
break;
default:break;
}
is[n]--;
n--;
}
public void printNameValue(Node node,int n)
{
for(int i=0;i<n;i++)
System.out.print(is[i]>0?" | ":" ");
System.out.println(" |--"+node.getNodeName()+":"+node.getFirstChild().getNodeValue());
}
public void printName(Node node,int n)
{
for(int i=0;i<n;i++)
System.out.print(is[i]>0?" | ":" ");
System.out.println(" |--"+node.getNodeName());
}
public static void main(String[]args)
{
if(args.length<1)
{
System.out.println("参数错误!");
System.exit(1);
}
System.out.println(args[0]);
try
{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse(new File(args[0]));
new TreeXml().walkNode(doc.getDocumentElement(),1);
}catch(Exception e)
{
System.out.println("错误"+e.getMessage());
}
System.exit(0);
}
}
- xml 树状显示
- XML+Javascript树状菜单
- (原创) 简单的用反射机制读取XML并以树状显示
- android 从xml文件读取数据初始化,并实现无分级的树状菜单的显示
- 仿树状隐藏显示
- 树状显示二叉树
- java树状显示文件名
- GridView树状结构显示
- java树状显示文件名
- Xml树状节点的遍历
- XML显示
- XML显示
- DropDownList中显示树状数据
- 显示树状结构,组织结构图
- web树状结构显示问题
- LigerUI 树状列表折叠显示
- django模板显示树状结构
- javascript+XML实现的树状菜单
- 七个高效的文本编辑习惯(以Vim为例)
- 数据库删除操作(drop, delete,truncate)
- Exercise 3.3 E7
- Windows 反调试参考翻译1
- C语言-字符串的定义与初始化
- xml 树状显示
- Windows 反调试参考翻译2
- poj 1289 The Cat in the Hat
- 字符串补充-字符串的\0
- 需要判断字符串中是否含有双引号
- listView 动态设置高亮
- Oracle控制文件操作
- json-lib 之jsonConfig详细使用
- C语言-switch