本人昨天才初学dom4j , 现在需要实现一个小小逻辑, 昨天折腾了大半天 还是搞不定,要请教一下大虾们1,获取一个节点 folder , 检查view属性是否等于document ,
2,如果有的话就把name属性打印出来 ,然后就不去迭代下一级别的folder,而去检查同级别的下一个兄弟节点folder;
3,如果第一步是 否的 话 就去遍历下一个级别的folder就是检查到 如果有document 的 就不去检查一下级别,而去检查同级别的
然后 把合符条件的 name 的值 打印出来我写了大半天 要不递归错误 或者出错 怎样的 好蛋疼XML 如下:<folder name="USER_ROOT">
<folder name="Briefcase" view="document" perm="rwidxapfc">
<acl />
<folder name="a" view="music" perm="rwidxapfc">
<folder name="b" view="document" perm="rwidxapfc">
<folder name="c" view="document" perm="rwidxapfc" />
</folder>
</folder> <folder name="test123" view="document" perm="rwidxapfc">
<folder name="My" view="document" perm="rwidxapfc" />
<folder name="My Files" view="document" perm="rwidxapfc">
<folder name="aa" view="document" perm="rwidxapfc" />
</folder>
<folder name="My Music" view="document" perm="rwidxapfc">
<folder name="My Music" view="document" perm="rwidxapfc" />
</folder>
</folder>
</folder>
</folder>
2,如果有的话就把name属性打印出来 ,然后就不去迭代下一级别的folder,而去检查同级别的下一个兄弟节点folder;
3,如果第一步是 否的 话 就去遍历下一个级别的folder就是检查到 如果有document 的 就不去检查一下级别,而去检查同级别的
然后 把合符条件的 name 的值 打印出来我写了大半天 要不递归错误 或者出错 怎样的 好蛋疼XML 如下:<folder name="USER_ROOT">
<folder name="Briefcase" view="document" perm="rwidxapfc">
<acl />
<folder name="a" view="music" perm="rwidxapfc">
<folder name="b" view="document" perm="rwidxapfc">
<folder name="c" view="document" perm="rwidxapfc" />
</folder>
</folder> <folder name="test123" view="document" perm="rwidxapfc">
<folder name="My" view="document" perm="rwidxapfc" />
<folder name="My Files" view="document" perm="rwidxapfc">
<folder name="aa" view="document" perm="rwidxapfc" />
</folder>
<folder name="My Music" view="document" perm="rwidxapfc">
<folder name="My Music" view="document" perm="rwidxapfc" />
</folder>
</folder>
</folder>
</folder>
解决方案 »
- ssh 依赖注入
- 只给你一个java的class文件,你能运行他么
- jasperreport在linux下报错?
- 一台服务器多个web服务器的配置(apache+tomcat)500分求解
- 高分求教 struts+oracle 如何配置连接池?
- The value for the useBean class attribute lyb.jdbc is invalid.怎么解决啊!郁闷啊!好几天了!
- 400分求助:sos
- 各位大侠帮忙,我自学j2ee,配置上出了问题,请看!!!!急!
- Struts2上传文件时,只产生一个临时文件。
- Cannot load driver class: com.mysql.jdbc.Driver
- XYChart 中文乱码问题
- Spring bean初始化的问题
请问 当我 想 从 二级的节点 用e.getParent() 知道父节点,然后我想要 去检查 父节点的下一个节点
要如何操作呢?
建议LZ先学习或复习数据结构中的树,再进行XML的深入学习。
PS:我也是刚接触XML的操作……
参考一下这个
判断一下 如果属性是document 打印name 然后不去递归这个节点 直接跳出循环 判断下一个节点
否则就进行递归
但另外一个小问题就出来了
就是如果在folder 元素之前 如果有以下的东西: 要如何跳过?
,soap:Envelope xmlns:soap="http://www.w3.org/2003/05/-envelope">
<soap:Header>
<context xmlns="urn:XXX">
<change acct="d96c5edd-fc55-E30c-89dd-E2c0aEe4cbb9" token="8063"/>
</context>
</soap:Header>
<soap:Body>
public static void findName2(Element root) {
List<Element> list = root.elements("folder");
// 迭代所有
for (Element e : list) {
if(!("document".equals(e.attributeValue("view")))){
if(e.elementIterator().hasNext()){
findName2(e);
}
}else{
System.out.println("检测到 document 属性"+ e.attributeValue("name"));
}
}
}
判断下 这里的属性是不是folder
接了这个任务对 他都有点了解, 哈哈 觉得 这些东西 都是要 实践出来的 谢谢大家