怎么获取xml中父节点的名字(id)呢?

wyl8491797 2009-03-17 10:33:33
menu.xml

<?xml version="1.0" encoding="gb2312"?>
<bookstore>

<book category="公文阅读">
</book>

<book category="公文办理">
<title lang="en">收文登记办理</title>
<author>来件登记办理</author>
<year>发文登记办理</year>
<price>收文登记办理</price>
</book>

<book category="督办管理">
</book>

<book category="公文检索">
</book>

<book category="个人事务">
<title lang="en">日程安排</title>
<author>个人收藏</author>
<year>系统消息收件箱</year>
<price>系统消息发件箱</price>
<price>手机消息收件箱</price>
<price>手机消息发件箱</price>
</book>

<book category="公文报表">
<title lang="en">收文登记表</title>
<author>发文登记表</author>
<year>收文汇编</year>
<price>发文汇编</price>
</book>

<book category="两规管理">
<title lang="en">两规程批</title>
<author>延期程批</author>
<year>解除情况表</year>
<price>两规浏览</price>
</book>

<book category="案件管理">
<title lang="en">案件线索登记</title>
<author>案件线索浏览</author>
</book>

</bookstore>

Menu.java


NodeList list = null ;
try{
File file = new File("E:\\butone\\sjws\\WebRoot\\WEB-INF\\menu.xml");//(也就是上面的meun.xml)
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(file);
Element element1 = doc.getDocumentElement();
//获取根节点,是可以获取到的
String str = element1.getNodeName();
//在控制台打印button
System.out.println(str+"***********");
// 我想获取父节点的值 公文阅读
list = element1.getElementsByTagName("公文阅读");
Node node = list.item(0);
// 在控制台打印null ???? 为什么呢??? 难道不是这么获得的?????请高手指教!!
// 我想实现的效果是多集菜单 有时间的请帮我实现一下!!谢谢了
System.out.println(node+"$$$$$$$$$$$$$$$");
}catch(Exception ee){
ee.printStackTrace();
}
return SUCCESS;
}


...全文
623 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
冬天的蒲公英 2010-01-06
  • 打赏
  • 举报
回复
Node node = list.item(0).getFirstChild().getNodeValue();试试
axman 2009-03-17
  • 打赏
  • 举报
回复
那是不可能的,你的"aa"不会凭空出来的
wyl8491797 2009-03-17
  • 打赏
  • 举报
回复
但是我试了呀!打印结果是 id="aa" ;这不是我想要的结果呀!!
你能写一个小例子做参照呀?

谢谢了
axman 2009-03-17
  • 打赏
  • 举报
回复
is "公文阅读" a tagName? no,it's an attribute.
list = element1.getElementsByTagName("book");
System.out.println(list.item(0).getAttributes().item(0));
wyl8491797 2009-03-17
  • 打赏
  • 举报
回复
那应该怎么搞呢,还请5楼的朋友,举个小例子呀!!
谢谢了!!!!
Mars酱 2009-03-17
  • 打赏
  • 举报
回复
何必那么麻烦?
使用xpath就可以了
cirfye 2009-03-17
  • 打赏
  • 举报
回复
File file = new File("E:\\workspace\\ibatis\\test.xml");// (也就是上面的meun.xml)
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(file);
Element element1 = doc.getDocumentElement();
// 获取根节点,是可以获取到的
String str = element1.getNodeName();
// 在控制台打印button
System.out.println(str + "***********");
// 我想获取父节点的值 公文阅读
list = element1.getElementsByTagName("book");
Node node = list.item(0);
NamedNodeMap nns = node.getAttributes();//取得属性节点
Node s = nns.getNamedItem("category");//取得名为category的属性,你没有定义ID,取得应当为空
System.out.println(s.getNodeValue());//取得属性的值

81,111

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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