Java新手,学习用dom4j解析XML,有个XML有三层目录,如下:<Group></Group>
<?xml version="1.0" encoding="UTF-8"?>
<Contacts>
<Contact id="A1">
<Name>擎天柱</Name>
<Age>50</Age>
<Phone>13765421076</Phone>
<Group>
<id>1</id>
<Name>博派</Name>
</Group>
</Contact>
<Contact id="A2">
<Name>威震天</Name>
<Age>54</Age>
<Phone>13801298700</Phone>
<Group>
<id>2</id>
<Name>狂派</Name>
</Group>
</Contact>
</Contacts>
写了个dom4j的解析,输出到Group这里就不显示了,试了好久也没法转入到<Group></Group>里面去,怎么办啊?
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.List;
public class Test {
public void readXML(String fileName) throws Exception {
InputStream in = new FileInputStream(fileName);
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(in);
Element root = document.getRootElement();
List<Element> childElements = root.elements();
for (Element firstLevel : childElements) {
List<Element> childs = firstLevel.elements();
for(Element secondLevel : childs){
System.out.println(secondLevel.getName()+"-->"+secondLevel.getText());
}
}
}
public static void main(String[] args) throws Exception {
Test dom4jTest = new Test();
dom4jTest.readXML("./XML_Files/AdressList.xml");
}
}
输出:
Name-->擎天柱
Age-->50
Phone-->13765421076
Group-->
Name-->威震天
Age-->54
Phone-->13801298700
Group-->
Group后面是空的!
------解决思路----------------------
...大哥 当然是空的了 你只是解析到第二层啊
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Test
{
public void readXML(String fileName) throws Exception {
InputStream in = new FileInputStream(fileName);
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(in);
Element root = document.getRootElement();
List<Element> childElements = root.elements();
for (Element firstLevel : childElements) {
List<Element> childs = firstLevel.elements();
for(Element secondLevel : childs){
System.out.println(secondLevel.getName()+"-->"+secondLevel.getText());
List<Element> threeChilds = secondLevel.elements();
for(Element threeLevel : threeChilds)
System.out.println(threeLevel.getName()+"-->"+threeLevel.getText());
}
}
}
public static void main(String[] args) throws Exception {
Test dom4jTest = new Test();
dom4jTest.readXML("./XML_Files/AdressList.xml");
}
}
输出:
Name-->擎天柱
Age-->50
Phone-->13765421076
Group-->
id-->1
Name-->博派
Name-->威震天
Age-->54
Phone-->13801298700
Group-->
id-->2
Name-->狂派