dom4j循环读取内容

来源:百度知道 编辑:UC知道 时间:2024/06/15 16:40:35
我有一个xml的字符串(不是xml文件),比如:

String xmlStr = "<?xml version="1.0" encoding="UTF-8"?>
<sets>
<set name="Jan" value="462" color="AFD8F8" />
<set name="Feb" value="857" color="F6BD0F" />
<set name="Mar" value="671" color="8BBA00" />
<set name="Apr" value="494" color="FF8E46" />
<set name="May" value="761" color="008E8E" />
<set name="Jun" value="960" color="D64646" />
<set name="Jul" value="629" color="8E468E" />
<set name="Aug" value="622" color="588526" />
<set name="Sep" value="376" color="B3AA00" />
<set name="Oct" value="4

1.取得根元素
Element root = document.getRootElement();
2。写一个递归的方法,把根结点root放进来
public void getElementList(Element element) {
List elements = element.elements();

if (elements.size() == 0) {
//叶子节点,取出属性值
System.out.println(elements.attributeValue("name")
+ elements.attributeValue("value") + elements.attributeValue("color"));

} else {
// 有子元素
for (Iterator it = elements.iterator(); it.hasNext();) {
Element elem = (Element) it.next();

// 递归遍历
getElementList(elem);
}
}
}

//需要 引入XPATH 的jar包!jaxen-****.jar

List sets = document.selectNodes("//set");

for(int i=0;i<sets.size();i++){
Element set = (Element)sets.get(i);
for(Iterator iter = set.attributeIterator(); iter.hasNext();){
Attribute attribute = (Attribute) iter.next();