pengjun626
pengjun626
2011-04-14 00:48
浏览 236
已采纳

JDOM读取XML文件问题

1.XML文件
<?xml version="1.0" encoding="UTF-8"?>


















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下的子节点。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • ethenjean
    ethenjean 2011-04-14 15:04
    已采纳

    [quote]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("-----------------------------------");
    }

    }

    } [/quote]

    试试看

    点赞 评论

相关推荐