JDOM读取XML文件问题

问题描述

1.XML文件<?xml version="1.0" encoding="UTF-8"?><root target="sysmain" desc="非现场监管报送" id="Y000"><DataItem text="数据处理"><Item text="数据填报"></Item><Item text="文件提交"></Item><Item text="数据校验"></Item><Item text="数据汇总"></Item><Item text="Top(N)汇总"></Item></DataItem><DataItem text="报送管理" id="Y200"><Item text="报送项目管理"></Item><Item text="报送文件生成"></Item></DataItem><DataItem text="数据查询" id="Y300"></DataItem><DataItem text="制度查询" id="Y400"></DataItem><DataItem text="规则定制" id="Y500"></DataItem></root>2.JAVA类package com.pj.manager.action;import java.util.List;import org.jdom.Document;import org.jdom.Element;import org.jdom.input.SAXBuilder;public class MenuTreeAction { public static void main(String[] args) throws Exception{ SAXBuilder sb=new SAXBuilder(); Document doc=sb.build("MenuXML/1104SiteMap.xml"); //构造文档对象 Element root=doc.getRootElement(); //获取根元素 List list=root.getChildren("DataItem");//取名字为DataItem的所有元素 for(int i=0;i<list.size();i++){ Element element = (Element)list.get(i); String DataItem = element.getAttributeValue("text"); System.out.println("父结点:"+DataItem); Element root2 = doc.getRootElement().getChild("DataItem"); List itemlist = root2.getChildren("Item"); String[] Item = new String[itemlist.size()]; for(int j=0; j<itemlist.size(); j++) { Element itemelement = (Element)itemlist.get(j); Item[j] = itemelement.getAttributeValue("text"); System.out.println("--子结点:"+Item[j]); } System.out.println("-----------------------------------"); } } }3.输出结果父结点:数据处理--子结点:数据填报--子结点:文件提交--子结点:数据校验--子结点:数据汇总--子结点:Top(N)汇总-----------------------------------父结点:报送管理--子结点:数据填报--子结点:文件提交--子结点:数据校验--子结点:数据汇总--子结点:Top(N)汇总-----------------------------------父结点:数据查询--子结点:数据填报--子结点:文件提交--子结点:数据校验--子结点:数据汇总--子结点:Top(N)汇总-----------------------------------父结点:制度查询--子结点:数据填报--子结点:文件提交--子结点:数据校验--子结点:数据汇总--子结点:Top(N)汇总-----------------------------------父结点:规则定制--子结点:数据填报--子结点:文件提交--子结点:数据校验--子结点:数据汇总--子结点:Top(N)汇总-----------------------------------4.**********疑问所在***********因为我在根结点root下面有多个相同的DataItem节点,我要取第二个DataItem下的所有Item节点应该如何去取???上面程序所有DataItem节点下的子结点都为第一个DataItem下的子节点。

解决方案

引用public class MenuTreeAction { public static void main(String[] args) throws Exception{ SAXBuilder sb=new SAXBuilder(); Document doc=sb.build("MenuXML/1104SiteMap.xml"); //构造文档对象 Element root=doc.getRootElement(); //获取根元素 List list=root.getChildren("DataItem");//取名字为DataItem的所有元素 for(int i=0;i<list.size();i++){ Element element = (Element)list.get(i); String DataItem = element.getAttributeValue("text"); System.out.println("父结点:"+DataItem); //Element root2 = doc.getRootElement().getChild("DataItem"); Element root2=element; List itemlist = root2.getChildren("Item"); String[] Item = new String[itemlist.size()]; for(int j=0; j<itemlist.size(); j++) { Element itemelement = (Element)itemlist.get(j); Item[j] = itemelement.getAttributeValue("text"); System.out.println("--子结点:"+Item[j]); } System.out.println("-----------------------------------"); } } } 试试看

时间: 2024-10-11 09:14:06

JDOM读取XML文件问题的相关文章

jsp解析xml文档之使用 JDOM 读取XML文件

jsp教程解析xml文档之使用 JDOM 读取XML文件 xml文件: <?xml version="1.0" encoding="GB2312"?> <RESULT>   <VALUE>        <NO>A1234</NO>        <ADDR>四川省XX县XX镇XX路X段XX号</ADDR>   </VALUE>   <VALUE>      

【java开发系列】—— JDOM创建、修改、删除、读取XML文件

有很多中操作XML文件的方法,这里介绍一下JDOM的使用方法和技巧. JDOM下载地址 创建XML文档 XML文件是一种典型的树形文件,每个文档元素都是一个document元素的子节点.而每个子元素都是一个Element对象,对象可以向下包含. 1 因此我们可以通过先创建元素再将元素添加到父元素中,最后将顶层元素添加到根元素中. 2 创建完文档元素后,就可以把元素添加到document对象中,然后写入文件. 主要使用的函数: Element.setAttribute 为元素添加信息 Elemen

JDOM操作XML文件(法老修正版)

dom|xml 原文:JDOM操作XML文件地址:http://www.jspcn.net/htmlnews/200120272.html---------------------------------------------------------------------------    这篇文章讲的不错~把JDOM的基本操作实例化了,不过由于当时的作者用的JDOM版本还比较陈旧,所以部分代码会编译出错!支持中文也不好!所以,法老在原作者的基础上对程序做了修改!休正了编译出错以及中文乱码的

一个读取xml文件内容的类

xml 一个读取xml文件内容的类 package project.util.xml; import java.io.*;import java.util.*;import javax.servlet.http.*;import org.apache.log4j.*;import org.jdom.*;import org.jdom.input.*; /*** <p>Title: <font color="steelblue" size="10"&

java-XmlReader读取xml文件太慢是为什么,我用的是dom4j

问题描述 XmlReader读取xml文件太慢是为什么,我用的是dom4j SAXReader sax = new SAXReader(); Document xmlDoc = sax.read(new File("c://abc.xml")); 解决方案 跟你主机有关系的,问下你的空间商 解决方案二: DOM4J读取XML文件dom4j读取xml文件DOM4J读取XML文件 解决方案三: dom4j读取xml文件时,是读取所有树及节点的信息到内存中,再执行下一步的代码,所以会慢. 解

C#读取XML文件——自定义类

C#本身也带有读取XML文件的类,但是许久未曾接触C#了,为了练练手,自己写了一个具有简单功能的类,实现了读取xml文件,查找元素,插入结点等功能.实现如下: XmlDoc类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleCSharp { class XmlDoc { internal static st

利用SAX解析读取XML文件

xml     这是我的第一个BLOG,今天在看<J2EE应用开发详解>一书,书中讲到XML编程,于是就按照书中的步骤自己测试了起来,可是怎么测试都不成功,后来自己查看了一遍源码,发现在读取XML文件的位置时有误,于是进行了更改,还真行了,心中涌出一中成就感,现将源码贴出来与给位分享: 使用XML文件连接MYSQL数据库,database.conf.xml文件如下: <database-conf><datasource> <driver>com.mysql.

使用.NET读取XML文件

xml 介绍 本文中我将介绍在ASP.NET应用程序中如何读取XML文件,这是一个十分有用的技巧.使用这个技巧,我们能够定制我们的应用程序的配置文件,也可以读取那些保存在XML文件中的数据. 概论 下面的代码将使用XmlTextReader对象将磁盘文件中的数据读取到XmlDocument对象中.XmlTextReader对象在功能上和StreamReader及BinaryReader对象十分相似,只不过它是专为读取XML文件而特别设计的.除此以外,XmlTextReader对象还有其他一些与X

读取XML文件

xml 1.xml文件格式 <?xml version="1.0" encoding="utf-8" ?> <NodeList> <Node text="GWGL"></Node> <Node text="手册备案" clsid="表头">    <Name>GWGL.EP_PRE_EMS3_CUS_HEAD</Name>