博客信息

mvc之xml解析

发布时间:『 2019-01-26 17:15』  博客类别:自定义mvc  阅读(960)

1. Java中配置文件的三种配置位置及读取方式

  1.1 XML*.properties(属性文件)

  1.2 存放位置

    1.2.1 src根目录下

          Xxx.class.getResourceAsStream("/config.properties");

    1.2.2 与读取配置文件的类在同一包

          Xxx.class.getResourceAsStream("config2.properties");

    1.2.3 WEB-INF(或其子目录下)

          ServletContext application = this.getServletContext();

  InputStream is =

          application.getResourceAsStream("/WEB-INF/config3.properties");

 

  1*.properties文件

       key=value

       #注释

       Properties.load(is)

 

 

2. XML的作用

   配置

     *.properties

     *.xml

   数据交换

     xml

       webservice

     json

 

 

3. dom4j+xpath解析xml文件

   xpath等同数据库的select语句

 

   document.selectNodes(xpath);//查一组

Document document = sr.read(is);
			List<Element> actionEleList = document.selectNodes("/config/action");
			for (Element actionEle : actionEleList) {
				String pathValue = actionEle.attributeValue("path");
				System.out.println(pathValue);
	

document.selectSingleNode(xpath);//查单个

Document doc = sr.read(is);
			Element actionEle = (Element) doc.selectSingleNode("/config/action[@path='/registerAction']");
			System.out.println(actionEle.attributeValue("type"));
			Element forwardEle = (Element) actionEle.selectSingleNode("forward[@name='failed']");
			System.out.println(forwardEle.attributeValue("path"));

DOM由节点组成

       Node

         元素节点

         属性节点

         文本节点

 

   xpath

   /   定位路径 在系统中建一个文件叫document/students/student/sid|name

   @   属性


案例:

students.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>


XmlParse.java

package com.javaxl.parse;

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;

/**
 * 关于xml解析
 * 	selectNodes
 * 	selectSingleNode
 * @author Administrator
 *
 */
public class XmlParse {
	public static void main(String[] args) throws DocumentException {
		InputStream in = XmlParse.class.getResourceAsStream("students.xml");
//		SAXReader = java.util.properties
		SAXReader sr = new SAXReader();
		Document doc = sr.read(in);
//		System.out.println(doc.asXML());
//		xpath包支持按目录结构的形式查找标签
//		List<Element> stuEles = doc.selectNodes("/students/student");
//		for (Element stuEle : stuEles) {
//			System.out.println(stuEle.asXML());
//		}
		Element stuS002Ele = (Element) doc.selectSingleNode("/students/student[@sid='s002']");
		System.out.println(stuS002Ele.asXML());
		System.out.println(stuS002Ele.attributeValue("sid"));
		System.out.println(((Element)stuS002Ele.selectSingleNode("name")).asXML());
	}
}


关键字:     xml解析  

备案号:湘ICP备19000029号

Copyright © 2018-2019 javaxl晓码阁 版权所有