本人遇到一XML:
<Autos>
<groupItem id="1" label="默认分组" parentid="" order="1"/>
<groupItem id="1334907795" label="分组" parentid="" order="1334907795">
<groupItem id="1334907805" label="一组" parentid="1334907795" order="1334907805">
<groupItem id="1334907812" label="二组" parentid="1334907805" order="1334907812">
<groupItem id="1334907818" label="三组" parentid="1334907812" order="1334907818">
<autoItem id="40003" groupid="1334907818" order="0">我要说的沙发大厦</autoItem>
</groupItem>
</groupItem>
</groupItem>
</groupItem>
<groupItem id="1334719791" label="日常用语" parentid="" order="1334719791">
<autoItem id="40002" groupid="1334719791" order="0">少年不知愁滋味,欲说还休,却道天凉好个秋。</autoItem>
<autoItem id="40001" groupid="1334719791" order="0">生活如此美好,你却如此暴躁,这样不好!</autoItem>
</groupItem>
</Autos>上面是xml
------------------------------------------------------
下面是解析后显示到页面为树的情况+ 默认分组
+ 分组
一组
二组
+ 三组
我要说的沙发大厦
+ 日常用语
少年不知愁滋味,欲说还休,却道天凉好个秋。
生活如此美好,你却如此暴躁,这样不好!
-------------------------------------------------------------------------------------
本人使用DOM4J进行,
if(null != result){
Document document = null;
try{
document = DocumentHelper.parseText(result);
}catch(Exception e){
e.printStackTrace();
}
// 获得根节点
Element root = document.getRootElement();
for (Iterator i = root.elementIterator("groupItem");i.hasNext();) {
Element groupItem = (Element) i.next();
//到这里我就只得到数据:默认分组,分组,日常用语
--------------------------------------------------------------------
提问:如何获取所有的并将它如要求显示。
}
<Autos>
<groupItem id="1" label="默认分组" parentid="" order="1"/>
<groupItem id="1334907795" label="分组" parentid="" order="1334907795">
<groupItem id="1334907805" label="一组" parentid="1334907795" order="1334907805">
<groupItem id="1334907812" label="二组" parentid="1334907805" order="1334907812">
<groupItem id="1334907818" label="三组" parentid="1334907812" order="1334907818">
<autoItem id="40003" groupid="1334907818" order="0">我要说的沙发大厦</autoItem>
</groupItem>
</groupItem>
</groupItem>
</groupItem>
<groupItem id="1334719791" label="日常用语" parentid="" order="1334719791">
<autoItem id="40002" groupid="1334719791" order="0">少年不知愁滋味,欲说还休,却道天凉好个秋。</autoItem>
<autoItem id="40001" groupid="1334719791" order="0">生活如此美好,你却如此暴躁,这样不好!</autoItem>
</groupItem>
</Autos>上面是xml
------------------------------------------------------
下面是解析后显示到页面为树的情况+ 默认分组
+ 分组
一组
二组
+ 三组
我要说的沙发大厦
+ 日常用语
少年不知愁滋味,欲说还休,却道天凉好个秋。
生活如此美好,你却如此暴躁,这样不好!
-------------------------------------------------------------------------------------
本人使用DOM4J进行,
if(null != result){
Document document = null;
try{
document = DocumentHelper.parseText(result);
}catch(Exception e){
e.printStackTrace();
}
// 获得根节点
Element root = document.getRootElement();
for (Iterator i = root.elementIterator("groupItem");i.hasNext();) {
Element groupItem = (Element) i.next();
//到这里我就只得到数据:默认分组,分组,日常用语
--------------------------------------------------------------------
提问:如何获取所有的并将它如要求显示。
}
import java.util.List;public class GroupItem {
private String id;
private String label;
private String parentid;
private String order;
private List<GroupItem> groupList;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getParentid() {
return parentid;
}
public void setParentid(String parentid) {
this.parentid = parentid;
}
public String getOrder() {
return order;
}
public void setOrder(String order) {
this.order = order;
}
public List<GroupItem> getGroupList() {
return groupList;
}
public void setGroupList(List<GroupItem> groupList) {
this.groupList = groupList;
}
}
然后再书写一个方法来封装GroupItem对象,这个方法需要用到递归: /**
* 根据节点对象和节点名获取GroupItem对象
* @param element 包含groupItem子节点的groupItem节点对象
* @return GroupItem对象
* @since CodingExample Ver(编码范例查看) 1.1
*/
public GroupItem getElement(Element element){
//验证节点是否符合规则
if(!"groupItem".equals(element.getName())){
return null;
}
GroupItem groupItem = new GroupItem();
//设置groupItem属性,此处可根据反射编写
groupItem.setId(element.attributeValue("id"));
groupItem.setLabel(element.attributeValue("label"));
groupItem.setParentid(element.attributeValue("parentid"));
groupItem.setOrder(element.attributeValue("order"));
//获得groupItem子节点集合
List<Element> list = element.elements("groupItem");
List<GroupItem> gList = new ArrayList<GroupItem>();
if(list != null && list.size() != 0){
//如果groupItem子节点不为空,则遍历
for (Element ele : list) {
//循环添加相关的GroupItem对象
gList.add(getElement(ele));
}
} //设置子groupItem集合
groupItem.setGroupList(gList);
return groupItem;
}
最后就是调用了,将“默认分组”这个节点传入到方法中返回一个GroupItem对象,里面就有所有的元素。
然后就看你怎么遍历了