<?xml version="1.0" encoding="GBK"?>
<sbbQysds2008JdAZb>
<head>
<publicHead>
<sbh>识别号</sbh>
<mc>名称</mc>
<sssq>
<rqQ>所属日期起</rqQ>
<rqZ>所属日期止</rqZ>
</sssq>
<dymm>打印密码</dymm>
</publicHead>
<privateHead>
<dbr>代表人</dbr>
<kjzg>会计主管</kjzg>
</privateHead>
</head>
</sbbQysds2008JdAZb>
求解析成:
sbbQysds2008JdAZb.head.publicHead.sbh
sbbQysds2008JdAZb.head.publicHead.mc
sbbQysds2008JdAZb.head.publicHead.sssq.rqQ
.......
StringBuilder sb = new StringBuilder();
Element root = doc.getRootElement();
sb.append(root.getName());
Element temp = root;
boolean flag = true;
while (flag) {
if (temp.elements() != null && temp.elements().size() > 0) {
temp = (Element) temp.elements().get(0);
sb.append(".").append(temp.getName());
} else {
flag = false;
}
}
System.out.println(sb.toString());转成Document之后,后面的写法应该很通用吧,我用的是dom4j。
你这种写法,当解析到 <rqQ>所属日期起</rqQ>,会用问题的
广度用elements.size确定,剩下的就是你的怎么设计循环的逻辑能力了。
作为指点,我感觉给的够详细了
你只要照着这个原理,追加上广度的遍历,就能得到dom树的所有路径了。
关机...走人
http://topic.csdn.net/u/20120223/21/f6a49933-f7f6-4280-b106-e8be9bbb379e.html