问题描述
各位大虾帮忙看看下面是我的xml,现在有iswitch节点3个java怎么通过iswitch的id查询trkgrp的id的值(iswitch的第id为唯一性)<?xmlversion="1.0"encoding="utf-8"?><iswitchlist><iswitchid="testdialer"ip="127.0.0.1"port="8888"name="testdialer"loginOnce="N"><trkgrpid="all"/></iswitch><iswitchid="1122"ip="127.0.0.1"port="8888"name="11222"loginOnce="N"><trkgrpid="30"/></iswitch><iswitchid="3322"ip="127.0.0.1"port="8888"name="gg"loginOnce="N"><trkgrpid="20"/></iswitch></iswitchlist>
解决方案
解决方案二:
百度一下DOM4J解析XML例子,一搜一大堆。id这些在里边都是attribute对象,取到对象以后直接获取值就行了。对象都可以根据名字直接就能取到很方便的。记住是dom4j
解决方案三:
我是新手,希望大家帮帮忙
解决方案四:
先取出iswitch的nodelist再遍历比较哪一个节点的属性是你想要的通过这个节点找到子节点
解决方案五:
Dom4J官方地址:http://www.dom4j.org/dom4j-1.6.1/顺便说一句你的XML文件需要加一个根节点,这样才是对的。参考这个代码:/***<p>Description:解析DOM文档</p>*@returnExtJSJSON菜单格式内容*/protectedListparseDocument(){InputStreamis=this.getClass().getClassLoader().getResourceAsStream("content.xml");SAXReaderreader=newSAXReader();Documentdocument=null;try{document=reader.read(is);}catch(DocumentExceptione){e.printStackTrace();}if(document==null){returnnull;}Elementroot=document.getRootElement();List<Element>list=root.elements();Listresult=newArrayList();for(Elementelement:list){Mapvalue=parseElement(element);if(value!=null){result.add(value);}}returnresult;}/***<p>Description:菜单节点解析</p>*@paramelement菜单节点*@returnExtJSJSON菜单格式内容*/protectedMapparseElement(Elementelement){Attributeauthority=element.attribute("authority");if(authority==null||!authenticate(authority.getText())){returnnull;}Mapmap=newHashMap();map.put("text",element.attribute("name").getText());Attributeattribute=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();Listchildren=newArrayList();for(Elementchild:list){Mapvalue=parseElement(child);if(value!=null){children.add(value);}}map.put("expanded",Boolean.parseBoolean(element.attribute("expanded").getText()));map.put("children",children);}returnmap;}