通过xml的节点id查询子节点的id 急急急 百度一下DOM4J解析XML例子,一搜一大堆。id这些在里边都是attribute对象,取到对象以后直接获取值就行了。对象都可以根据名字直接就能取到很方便的。记住是dom4j 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先取出iswitch的nodelist 再遍历比较哪一个节点的属性是你想要的 通过这个节点找到子节点 Dom4J官方地址:http://www.dom4j.org/dom4j-1.6.1/ 顺便说一句你的XML文件需要加一个根节点,这样才是对的。参考这个代码:/** * <p>Description: 解析DOM文档</p> * @return ExtJS JSON菜单格式内容 */ protected List parseDocument() { InputStream is = this.getClass().getClassLoader().getResourceAsStream("content.xml"); SAXReader reader = new SAXReader(); Document document = null; try { document = reader.read(is); } catch (DocumentException e) { e.printStackTrace(); } if(document == null){ return null; } Element root = document.getRootElement(); List<Element> list = root.elements(); List result = new ArrayList(); for (Element element : list) { Map value = parseElement(element); if(value != null) { result.add(value); } } return result; } /** * <p>Description: 菜单节点解析</p> * @param element 菜单节点 * @return ExtJS JSON菜单格式内容 */ protected Map parseElement(Element element) { Attribute authority = element.attribute("authority"); if(authority == null || !authenticate(authority.getText())) { return null; } Map map = new HashMap(); map.put("text", element.attribute("name").getText()); Attribute attribute = element.attribute("leaf"); if(attribute != null) { map.put("leaf", Boolean.parseBoolean(attribute.getText())); map.put("iconCls", element.attribute("iconCls").getText()); map.put("forward", element.attribute("forward").getText()); } else { List<Element> list = element.elements(); List children = new ArrayList(); for (Element child : list) { Map value = parseElement(child); if(value != null) { children.add(value); } } map.put("expanded", Boolean.parseBoolean(element.attribute("expanded").getText())); map.put("children", children); } return map; } mapimg does not exist or is not a readable directory急!! weblogic在部署web应用时发错. hibernate操作数据库 struts2校验问题? linu as4.0 下 mysql数据库插入时乱码问题!!!求高人解决!!! 请问在网页中如何设置在网页地址栏中的小图标 简单页面阅读统计问题,初学者问 请问,有人用过echo2吗?怎么在界面里做个链接,弹出一个IE窗口连接到另外一个网站上? tomcat和access做的jsp程序 请教大家分别用什么开发工具写jsp Hessian 调用webservice 怎么循环输出xml?
顺便说一句你的XML文件需要加一个根节点,这样才是对的。参考这个代码:/**
* <p>Description: 解析DOM文档</p>
* @return ExtJS JSON菜单格式内容
*/
protected List parseDocument() {
InputStream is = this.getClass().getClassLoader().getResourceAsStream("content.xml");
SAXReader reader = new SAXReader();
Document document = null;
try {
document = reader.read(is);
} catch (DocumentException e) {
e.printStackTrace();
}
if(document == null){
return null;
}
Element root = document.getRootElement();
List<Element> list = root.elements();
List result = new ArrayList();
for (Element element : list) {
Map value = parseElement(element);
if(value != null) {
result.add(value);
}
}
return result;
}
/**
* <p>Description: 菜单节点解析</p>
* @param element 菜单节点
* @return ExtJS JSON菜单格式内容
*/
protected Map parseElement(Element element) {
Attribute authority = element.attribute("authority");
if(authority == null || !authenticate(authority.getText())) {
return null;
}
Map map = new HashMap();
map.put("text", element.attribute("name").getText());
Attribute attribute = element.attribute("leaf");
if(attribute != null) {
map.put("leaf", Boolean.parseBoolean(attribute.getText()));
map.put("iconCls", element.attribute("iconCls").getText());
map.put("forward", element.attribute("forward").getText());
} else {
List<Element> list = element.elements();
List children = new ArrayList();
for (Element child : list) {
Map value = parseElement(child);
if(value != null) {
children.add(value);
}
}
map.put("expanded", Boolean.parseBoolean(element.attribute("expanded").getText()));
map.put("children", children);
}
return map;
}