您的位置:首页 > 其它

XML解析

2019-05-26 18:02 99 查看

XML解析介绍

如何调用 *.properties文件

Java中配置文件的三种配置位置及读取方式
1.同包下的资源文件读取
2.将所有的资源文件放在根目录下
*编译后所有的资源文件都会自动进web-inf下
3 WEB-INF(或其子目录下)

这是第一种方式,在同包的情况下获取
而第二种方式 如果不是同包的情况下,而是放在根目录下,我们就只要 在 db.properties 加个斜杠 " / " 就好了


第三种方式,是读取WEB-INF中 我们需要写个servlet配置

public class PropertiesServlet 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");
java.util.Properties p = new java.util.Properties();
p.load(in);
System.out.println(p.getProperty("uname"));
System.out.println(p.getProperty("upass"));

}
}

再在web.xml中配置 一样可以调用到db. properties 里的内容

XML解析

properties文件的解析方式有java.util.properties这个类来完成
xml文件:应该由一个工具类来完成 以下是三种不同解析的工具类
jdk/jdom
sax解析 由上往下解析
dom4j解析 由外到内解析
dom4j解析我们需要下载它的包来完成 注意:导的所有方法都在dom4j下的

我们建立一个student.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>
public static void main(String[] args) throws DocumentException {
InputStream in = XmlParseDemo.class.getResourceAsStream("students.xml");
SAXReader saxReader = new SAXReader();
Document doc = saxReader.read(in);
System.out.println(doc.asXML());
//		 * 1.获取到所有的学生
List<Element> stuEles = doc.selectNodes("/students/student");
//		 * 2.遍历
for (Element stuEle : stuEles) {
if ("s003".equals(stuEle.attributeValue("sid"))) {
Element nameEle = (Element) stuEle.selectSingleNode("name");
//				System.out.println(nameEle.asXML());
System.out.println(nameEle.getText());//获得文本内容
}
}

但如果我们是知道小王的id是’s003’的情况下可以这么写

//		 * 3.做判断,如果sid=s003那么就拿到小王
Element stuEles003 =(Element) doc.selectSingleNode("/students/student[@sid='s003']");//直接找到student的sid属性中为s003的student
System.out.println(stuEles003.selectSingleNode("name").getText());//打印student中的name元素里面的文本内容
}

dom4j+xpath解析xml文件
xpath等同数据库的select语句

document.selectNodes(xpath);//查一组
document.selectSingleNode(xpath);//查单个
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: