xml解析
<?xml version="1.0" encoding="UTF-8"?>
<Pandas>
<panda>
<name>金虎</name>
<city>重庆</city>
<age>2</age>
</panda>
<panda>
<name>绩笑</name>
<city>成都</city>
<age>2</age>
</panda>
<panda>
<name>雪宝</name>
<city>上海</city>
<age>2</age>
</panda>
</Pandas>
dom4j解析(导入dom4j.jar包)
public static void dom4J(File file) throws DocumentException, MalformedURLException {
//获取SAXRead对象
SAXReader reader=new SAXReader();
//获取存放xml信息的Document对象
org.dom4j.Document document=reader.read(file);
//获取根结点
Element root=document.getRootElement();
//获取迭代器
Iterator iterator = root.elementIterator();
//遍历子节点
while (iterator.hasNext()){
//接收当前遍历节点
Element element= (Element) iterator.next();
//遍历当前节点子节点
Iterator iterator1 = element.elementIterator();
while (iterator1.hasNext()){
Element next = (Element) iterator1.next();
//打印当前节点存放值
System.out.println(next.getData());
}
}
}
dom解析(jdk自带无需导包,但是消耗内存,不推荐使用)
public static void dom(File file) throws ParserConfigurationException, IOException, SAXException {
//特定步骤传入xml文件对象即可
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document parse = builder.parse(file);
//和js语法类似
NodeList list=parse.getElementsByTagName("panda");
//遍历节点
for(int i=0;i<list.getLength();i++){
//打印结点内文本信息
System.out.println(list.item(i).getTextContent());
}
}
jsoup解析(导入jsoup.jar)//比较喜欢用的
/**
* jsoup解析
* @param file
* @throws IOException
*/
public static void readInJsoup(File file) throws IOException {
org.jsoup.nodes.Document parse = Jsoup.parse(file, "utf-8");
Elements pandas = parse.getElementsByTag("Pandas");
ListIterator<org.jsoup.nodes.Element> elementListIterator = pandas.listIterator();
while (elementListIterator.hasNext()){
org.jsoup.nodes.Element child = elementListIterator.next();
System.out.println(child.getElementsByTag("name").text());
System.out.println(child.getElementsByTag("city").text());
System.out.println(child.getElementsByTag("age").text());
}
}