xml解析
常见的资源文件xml、properties
资源文件的读取路径
src根路径下
xxx.Class.getResourceAsStream("/文件名")
同包
xxx.Class.getResourceAsStream("/文件名")
WEB-INF
context = request.getServletContext();
context = getResourceAsStream("/文件名")
db.properties文件
uname=mybatis_ssm
upass=luojun
url=jdbc:mysql://localhost:3306/mybatis_ssm
driver_Class=com.mysql.jdbc.Driver
initPoolSize=5
maxPoolSize=20
1.读取根路径下的资源文件
package com.luojun.parse;
import java.io.InputStream;
import java.util.Properties;
/**
* 读取根路径下的资源文件,以properties为列
* @author Administrator
*
*/
public class Demo1 {
public static void main(String[] args) throws Exception {
//加载根路径下的资源文件db.properties文件,到jvm称为流对象
InputStream in = Demo1.class.getResourceAsStream("/db.properties");
//java.utils.properties
Properties p = new Properties();
//此时p中就加载了流对象,从而就拥有了该资源文件的所有配置信息
p.load(in);
System.out.println(p.getProperty("uname"));
System.out.println(p.getProperty("upass"));
}
}
运行结果:
2、读取同包下的资源文件
package com.luojun.parse;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
*
* @author luojun
*
*/
public class Demo2 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
InputStream in = Demo2.class.getResourceAsStream("db.properties");
Properties p = new Properties();
p.load(in);
System.out.println(p.getProperty("uname"));
System.out.println(p.getProperty("upass"));
}
}
3、读取WEB-INF下的资源文件
package com.luojun.parse;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name=“demo”,urlPatterns="/demo")
public class DemoServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
ServletContext context = req.getServletContext();
InputStream in = context.getResourceAsStream("/WEB-INF/db.properties");
Properties p = new Properties();
p.load(in);
System.out.println(p.getProperty("uname"));
System.out.println(p.getProperty("upass"));
}
}
dom4j+xpath解析xml文件
xml文件内容`
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student sid="s001">
<name>小明</name>
</student>
<student sid="s002">
<name>小芳</name>
</student>
<student sid='s003'>
<name>小王</name>
</student>
</students>
dom4j解析方式
package com.luojun.parse;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
/**
* dom4j+path解析xml
* @author luojun
*
*/
public class Demo3 {
public static void main(String[] args) throws IOException, DocumentException {
// TODO Auto-generated method stub
InputStream in = Demo3.class.getResourceAsStream("/students.xml");
SAXReader r=new SAXReader();
Document d = r.read(in);
List<Element> list = d.selectNodes("/students/student");
for (Element el : list) {
if("s002".equals(el .attributeValue("sid"))) {
Node n =(Node)el.selectSingleNode("name");
System.out.println("sid="+el.attributeValue("sid")+",name="+n.getText());
}
}
}
}
xpath解析方式
package com.luojun.parse;
import java.io.InputStream;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class Demo4 {
public static void main(String[] args) throws DocumentException {
InputStream in = Demo4.class.getResourceAsStream("/students.xml");
SAXReader read=new SAXReader();
Document doc = read.read(in);
Element node =(Element)doc.selectSingleNode("/students/student[@sid='s002']");
Element ele =(Element)node.selectSingleNode("name");
System.out.println("sid="+node.attributeValue("sid")+",name="+ele.getText());
}
}