本地文件解析:
package com.java.h.demo;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
/**
* @author s
* @version 1.0
* @date 2022-02-18 19:30
*/
public class Demo {
public static void main(String[] args) throws IOException, DocumentException {
// 1.获取输入流
FileInputStream fis = new FileInputStream("E://XML_JSONDemo/src/com/java/h/demo/demo.xml");
// 2.创建XML读取对象
SAXReader sr = new SAXReader();
// 3.读取并得到文档对象
Document doc = sr.read(fis);
// 4. 通过文档获取根元素
Element root = doc.getRootElement();
// 5. 开始解析元素
// System.out.println(root.getName());
// 操作
// Element book = root.element("book");
// Element name = root.element("name");
// System.out.println(name.getText());
List<Element> es = root.elements();
for(int i = 0; i < es.size(); i++){
Element book = es.get(i);
System.out.println(book.attributeValue("id"));
System.out.println(book.elementText("name"));
System.out.println(book.elementText("info"));
System.out.println("==== 分割线 ====");
}
fis.close();
}
}
网络文件解析:
package com.java.h.demo;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
/**
* @author s
* @version 1.0
* @date 2022-02-18 19:51
*/
public class Demo1 {
public static void main(String[] args) throws IOException, DocumentException {
String phone = "XXXXXXXXXXX";
// 1.获取到XML资源的输入流
URL url = new URL("http://apis.juhe.cn/mobile/get?phone="+phone+"&dtype=xml&key=9f3923e8f87f1ea50ed4ec8c39cc9253");
URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
// 2.创建一个XML读取对象
SAXReader sr = new SAXReader();
// 3.通过读取对象 读取XML数据,并返回文档对象
Document doc = sr.read(is);
// 4.获取根节点
Element root = doc.getRootElement();
// 5.解析内容
String resCode = root.elementText("resultcode");
if("200".equals(resCode)){
Element res = root.element("result");
String prov = res.elementText("province");
String city = res.elementText("city");
if(prov.equals(city)){
System.out.println("手机号归属地为:"+city);
}else{
System.out.println("手机号归属地为:"+prov+","+city);
}
}else{
System.out.println("请输入正确的手机号码!");
}
}
}