读取XML文件
dom4j读取xml文件
今天晚上搞来搞去读取xml,方法有不少,但最好用且没问题的还是dom4j,本来有一个dom,但那个是在java集合出来之前好像就有了,版本实在太老,甚至会把空白字符、回车字符当作一个节点(node)。
还有一种是SAX解析xml,还没有尝试过,以后有缘再见。
参考资料:
读取配置文件/xml的各种方法:
http://c.biancheng.net/view/1631.html
https://www.jb51.net/article/136564.htm
dom4j解析xml:
https://www.iteye.com/blog/miaoxianjie-1914030
https://www.jianshu.com/p/ce65c1619da5 (dom4j的详细用法)
自己写的行之有效的代码:
<?xml version="1.0" encoding="UTF-8" ?>
woshi
123123
package com.woshi.servlet;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
@WebServlet("/xml")
public class XmlServletTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
SAXReader reader = new SAXReader();
Document doc = null;
String xmlPath = "db.xml";
ClassLoader classLoader = XmlServletTest.class.getClassLoader();
InputStream inputStream = classLoader.getResourceAsStream(xmlPath);
try{
doc = reader.read(inputStream);
Element db = doc.getRootElement();
Element connection = db.element("connection");
List details = connection.elements();
Iterator iterator = details.iterator();
while (iterator.hasNext()) {
Element detail = (Element) iterator.next();
System.out.println(detail.getName()+":"+detail.getText());
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}