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