package dom4jExample.read;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class LayerXml {
public static void main(String args[]) {
// 遍历整个XML文件
try{
LayerXml layerXml = new LayerXml();
HashMap<String, String> hashMap = layerXml.iterateWholeXML("Layer.xml");
System.out.println(hashMap);
for (int i = 0; i <= hashMap.size(); i += 3) {
int j = i /3 ;
System.out.print(hashMap.get("name" + j) + "/t");
System.out.println(hashMap.get("info" + j) + "/t");
}
}catch(Exception e){
e.printStackTrace();
}
}
@SuppressWarnings("unchecked")
public HashMap<String, String> iterateWholeXML(String fileDir) {
HashMap<String, String> hashMap = new HashMap();
SAXReader saxReader = new SAXReader();
Document document = null;
try {
document = saxReader.read(fileDir);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String xpath = "layer/layer/layer/layer/pclint//element";
List<Element> list = document.selectNodes(xpath);
int ss = list.size();// 得到element的所有元素个数
// System.out.println(ss);
Iterator it = list.iterator();
int jj = 0;
int num =-1;
while (it.hasNext()) {
Element element = (Element) it.next();
num++;
for (Iterator iterInner = element.elementIterator(); iterInner.hasNext();) {
Element elementInner = (Element) iterInner.next();
if(elementInner.getText().equalsIgnoreCase("我爱你")){
jj++;
}
hashMap.put(elementInner.getName() + num, elementInner.getText());
}
}
return hashMap;
}
}
<?xml version="1.0" encoding="gb2312"?>
<layer>
<layer name="mpu">
<layer name="spu">
<layer name="ups">
<pclint>
<element>
<name>dddddddddddddddd</name>
<info>我爱你</info>
</element>
<element>
<name>ffffffffffffffffff</name>
<info>爱你</info>
</element>
<element>
<name>ffffffffffffffffff</name>
<info>爱你</info>
</element>
</pclint>
</layer>
</layer>
</layer>
</layer>