目录
一.XML的作用
1.1配置
*.xml和*.properties、*.ini、*.yaml1.2数据交互(获取第三方数据)
XML:webservices(axis2) -> xml -> 手机归属地、天气
JSON ajax 无刷新
二.Java中读取方式及3种配置位置
2.1如何使用Properties读取配置文件
1)*.properties文件以键值对的方式存储数据;
2)使用Properties类读取配置文件;
//1.获取文件输入流
InputStream is = Demo1.class.getResourceAsStream("demo.properties");
//2.创建Properties对象
Properties prop=new Properties();
//3.加载文件输入流
prop.load(is);
//4.读取配置文件内容
String username = prop.getProperty("username");
String password = prop.getProperty("password");
Object url = prop.getOrDefault("url", "http://www.baidu.com");
System.out.println("username:"+username);
System.out.println("password:"+password);
System.out.println(url);
2.2 配置位置
1)存放于根目录下,/代表获取src根目录的绝对路径
2)存放于同一类的包下,不加/代表同类名包下的相对路径;
3)存放于WEB-INF目录下
// 1)存放于根目录下,/代表获取src根目录的绝对路径
InputStream is = Demo2.class.getResourceAsStream("/student.xml");
System.out.println(is);
// 2)存放于同一类的包下,不加/代表同类名包下的相对路径;
InputStream is1 = Demo2.class.getResourceAsStream("demo.properties");
System.out.println(is1);
// 3)存放于WEB-INF目录下
//servlet生命周期:初始化(init)、服务处理(services)、销毁(destroy)
三.dom4j+xpath解析xml文件
1)xpath类似数据库中的select语句;
2)Document有节点(Node)组成:元素节点、属性、文本等;
3)selectNodes()获取节点下所有子节点;
4)selectSingleNodes()获取单个节点信息;
5) xpath语法:/(定位路径)、@(获取属性)
//1.获取sudent.xml文件输入流
InputStream is = Demo3.class.getResourceAsStream("/student.xml");
//2.创建SAXReader对象
SAXReader saxReader=new SAXReader();
//3.读取文件输入流并转换成Document对象
//Document:包含元素节点、属性以及文本
Document doc = saxReader.read(is);
//4.循环遍历
//1)selectNodes:获取多个节点,返回List
//2)selectSinleNode:获取单个节点
//3)xpath语法: /代表定位路径
List<Node> selectNodes = doc.selectNodes("/students/student");
for (Node node : selectNodes) {
//5.将Node节点转换成元素节点Element(student)
Element elem=(Element) node;
//6.获取元素节点的属性
String pid = elem.attributeValue("pid");
System.out.println("pid="+pid);
//7.获取student节点下的name节点
Node nameNode = elem.selectSingleNode("name");
System.out.println("name:"+nameNode.getText());
}
//简化:xpath语法
Node node = doc.selectSingleNode("/students/student[@pid='p02']/name");
System.out.println(node.getText());