欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

XML解析

程序员文章站 2022-06-16 15:48:02
...

XML解析介绍

1.如何调用 .properties文件

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

1.1:第一种方式:在同包的情况下获取
XML解析

1.2:如果不是同包的情况下,而是放在根目录下,我们就只要 在 db.properties 加个斜杠 " / "

将路径       properitesDemo.class.getResourceAsStream("db.properties");
改为         properitesDemo.class.getResourceAsStream("/db.properties");

1.3:如果是在WEB-INF里,我们就要写个Servlet并且配置

public class properitesServlet extends HttpServlet {

	private static final long serialVersionUID = 7973003110170094853L;
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		ServletContext context = req.getServletContext();//这里的代码是本类的ServletContext去获得的
		InputStream in = context.getResourceAsStream("/WEB-INF/db.properties");//获取相对应的位置文件
		Properties p = new Properties();//因为还是properites文件
		p.load(in);
		System.out.println(p.getProperty("uname"));
	}
}


配置:
<servlet>
  	<servlet-name>proServlet</servlet-name>
  	<servlet-class>com.liwangwang.pares.properitesServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>proServlet</servlet-name>
  	<url-pattern>/proServlet</url-pattern>
  </servlet-mapping>

2.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());
//		 * 获取到所有的学生
	List<Element> stuEles = doc.selectNodes("/students/student");
//		 * 遍历
	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’的情况下

Element stuEles003 =(Element) doc.selectSingleNode("/students/student[@sid='s003']");//直接找到student的sid属性中为s003的student
		System.out.println(stuEles003.selectSingleNode("name").getText());//打印student中的name元素里面的文本内容
	}

xpath等同数据库的select语句

document.selectNodes(xpath);//查一组
document.selectSingleNode(xpath);//查单个
相关标签: XML XML解析