XML文件的解析读取(详解)

导语

我们常用的是通过dome4j的方式去读取XML文件,所以我们前期就需要准备好我们的帮助工具包,也即是jar包。

1.jar包准备
XML文件的解析读取(详解)_第1张图片

上面的jar包就是我们解析XML文件的说时候会用到的 ,没有的可以私信博主哦

2.导入jar包

在我们准备好jar包后就可以开始导入我们的jar包,但是要注意,不同的jar包导入进来读取的方式也不一样。

不同路径下获取的方式

XmlReader.class.getResourceAsStream("xxx"):拿到同包下的文件

XmlReader.class.getResourceAsStream("/xxx"):拿到根目录下的文件

XmlReader.getResourceAsStream("/WIN-INF/xxx"):拿到WIN-INF安全路径

3.dome4j的常用方法

selectNodes:拿到多个元素

selectSingleNode:拿到单个元素

getRootElement():拿到根元素

attributeValue:只有元素才可以点出这个方法来获取值

getText:拿到元素文本

4. xpath语法

XML文件的解析读取(详解)_第2张图片

 5.编写xml

这里的话就直接按自己要解析的XML文件来就可以啦,在里我提供一个案例



	
	
	
	
]>

	
		
	

6.开始解析XML


	public static void main(String[] args) throws Exception {

		InputStream is = XmlReader.class.getResourceAsStream("/config.xml");
//通过 .calss获取类的输入流
		SAXReader reader = new SAXReader();
//dome4j的读取方法
		Document doc = reader.read(is);
//获得这个元素
		Element rootElement = doc.getRootElement();
//获取它单个元素,注意转成Element
		List actions = rootElement.selectNodes("action");
//循环遍历出每一个元素
		for (Element e : actions) {
//通过 .attrirbuteValue()方法获取每一个元素值
			String path = e.attributeValue("path");
			String type = e.attributeValue("type");

			System.out.println("action path" + path);
			System.out.println("action type" + type);
//获取下一级元素及元素值
			List forward = e.selectNodes("forward");
			for (Element f : forward) {
				String name = f.attributeValue("name");
				String pathf = f.attributeValue("path");
				String redirect = f.attributeValue("redirect");

				System.out.println("forward name" + name);
				System.out.println("forward path" + pathf);
				System.out.println("forward redirect" + redirect);
			}
		}
	}

可以把这写在一个方法当中,我是写在mian中的案例

运行结果:

XML文件的解析读取(详解)_第3张图片

 

总结:XML文件的读取还是非常简单的,只要记住dome4j的几个方法就好了!

你可能感兴趣的:(MVC,xml,java)