xml是一个树形组织结构人员关系,读取

小胖脚丫儿 2014-05-20 04:09:33
<?xml version="1.0" encoding="gb2312" ?>
<Tree>
<depart name="1" >
<depart name="11">
<depart name="111">
<user name="aa">
</user>
<user name="bb">
</user>
<depart name="1111">
</depart >
</depart >
<depart name="112">
</depart >
</depart >
</depart >
<depart name="2">
<depart name="22">

</depart >
</depart >


</Tree>
...全文
296 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
小胖脚丫儿 2014-05-23
  • 打赏
  • 举报
回复
感谢大家,我的问题解决了,问了一个大神。 是先用递归的方法,把表读出来,在递归的过程中,用一个while循环的方法,对当前节点进行回溯,找到最外里的tree,这样,在回溯的过程中,控制LEVEL,就是节点所在的层次,在递归过程中,要每一次读取,都把信息保存到数据库的表里,让子节点来找到上一级的父节点,这样就完成了。
什么都不能 2014-05-22
  • 打赏
  • 举报
回复
层级关系你要如何体现?
小胖脚丫儿 2014-05-22
  • 打赏
  • 举报
回复
这个问题,还是没有解决,我读取的时候,用的是一个递归的方法,不过里面的关系,我就梳理不清楚了,不知道怎么样把部门组织加上,哪位大神,指点一下
小胖脚丫儿 2014-05-22
  • 打赏
  • 举报
回复
正在尝试,看来只能靠自己了
wasdasdfqwer 2014-05-22
  • 打赏
  • 举报
回复
有了通用的例子,估计你这个也不是很复杂,读取到东西,再加点自己的判断逻辑就可以了
小胖脚丫儿 2014-05-22
  • 打赏
  • 举报
回复
这位大神给的是一个比较通用的例子,并没有小复杂的逻辑啊,不过还是感谢你的回复
  • 打赏
  • 举报
回复
其实就是一个xml,不同的节点去读取就是,给你贴一段关于读取xml的方法,你自己照样写一个就是,不难:
<wuxialist>
	<txtbook>
		<name>AAAA</name>
		<author>aaa</author>
			</txtbook>
	<txtbook>
		<name>BBBB</name>
		<author>bbbb</author>
			</txtbook>
</wuxialist>

要求运行结果为: 1.AAAA 2.BBBB
import java.io.File;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class b
{
    public static void main(String[] args)
    {
        try
        {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = factory.newDocumentBuilder();
            Document doc = db.parse(new File("d://a.xml"));
            Element elmtInfo = doc.getDocumentElement();
            NodeList nodes = elmtInfo.getChildNodes();
            int m = 1;
            for (int i = 0; i < nodes.getLength(); i++)
            {
                Node result = nodes.item(i);
                if (result.getNodeType() == Node.ELEMENT_NODE && result.getNodeName().equals("txtbook"))
                {
                    NodeList ns = result.getChildNodes();

                    for (int j = 0; j < ns.getLength(); j++)
                    {
                        Node record = ns.item(j);

                        if (record.getNodeType() == Node.ELEMENT_NODE && record.getNodeName().equals("name"))
                        {
                            System.out.println(m + ": " + record.getTextContent());
                            m++;
                        }
                    }
                }
            }
        }
        catch (ParserConfigurationException e)
        {
            e.printStackTrace();
        }
        catch (SAXException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}
jiji123go 2014-05-20
  • 打赏
  • 举报
回复
可以用Degister框架对XML进行解析,解析成JavaBean后进行面向对象编程。
小胖脚丫儿 2014-05-20
  • 打赏
  • 举报
回复
读出来的东西,很乱,我自己分不清楚,在读的时候,就不是很明白,读出来很多重复的,有哪个大神可以说的详细一点,谢谢
jiekou0704 2014-05-20
  • 打赏
  • 举报
回复
都知道读取了。。你还不知道他的层级关系么。。。
小胖脚丫儿 2014-05-20
  • 打赏
  • 举报
回复
depart中就要有一个属性保存它的子节点,还是不太明白,可以再具体一点吗
小胖脚丫儿 2014-05-20
  • 打赏
  • 举报
回复
大神可否贴段代码,不胜感激
S117 2014-05-20
  • 打赏
  • 举报
回复
可以读出来,层级关系就要你自己指定了! 比如depart name="1" 下面有depart name="11"那depart中就要有一个属性保存它的子节点,还有有一个list属性用来保存它的所有人员,这个按照上面组装就行了!
小胖脚丫儿 2014-05-20
  • 打赏
  • 举报
回复
是可以读取出来,不够是有组织部门关系的,dom4j我只读出了内容,层级关系怎末取到?谢谢
S117 2014-05-20
  • 打赏
  • 举报
回复
这么个小XML文件,用dom4j去读取把!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧