xml,xpath

版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/qq_34548401/article/details/85009215

XML简介

  • XML–可扩展标记语言 eXtensible Markup Language
  • 由W3C组织发布,目前推荐遵守的是W3C组织于2000年发布的XML1.0规范
  • XML的使命,就是以一个统一的格式,组织有关系的数据,为不同平台下的应用程序服务
  • XML用来传输和存储数据,HTML用来显示数据
  • XML没有预定义标签,均为自定义标签
  • 嗯,对应的各种语言只需要提供相应的接口和实现即可完成和xml的交互

用途

  • 配置文件,包括诸多框架里的配置文件
    • JavaWeb中的web.xml
    • C3P0中的c3p0-config.xml
  • 数据交换格式,遵循XML格式即可完成通用
    • Ajax
    • WebService
  • 数据存储,
    • 保存关系型数据

基本语法

  • XML声明要么不写,要写就写在第一行,并且前面没有任何其他字符
  • 只能有一个根标签
  • 标签必须正确结束
  • 标签不能交叉嵌套
  • 严格区分大小写
  • 属性必须有值,且必须加引号
  • 标签不能以数字开头
  • 注释不能嵌套
  • XML文档组成
    • XML声明
      • version属性指定XML版本,固定值是1.0
      • encoding指定的字符集,是告诉解析器使用什么字符集进行解码,而编码是由文本编辑器决定的
    • CDATA区
      • 当XML文档中需要写一些程序代码、SQL语句或其他不希望XML解析器进行解析的内容时,就可以写在CDATA区中
      • XML解析器会将CDATA区中的内容原封不动的输出
      • DATA区的定义格式:<![CDATA[…]]>

XML解析

  • XML解析是指通过解析器读取XML文档,解释语法,并将文档转化成对象
  • 对XML的一切操作都是由解析开始的,所以解析非常重要。
  • Java 平台同时提供了 DOM(Document Object Model)和 SAX(Simple API for XML)包,导入可使用
    • DOM标准,先加载成dom树结构,再执行,支持增删查改
      • ory.w3c.dom:DOM标准包(基础包)
        • jDom:对DOM解析进行包装,使程序更好用
          • dom4j:在JDom基础上进行改进,实际使用jar
    • SAX标准,边加载,边执行,仅支持查询
      • org.xml.sax:SAX标准包
        • PULL:对sax解析进行包装,使程序更好用
java中包或类
  • dom4j,开源XML解析包
public static void main(String[] args) {
	//解析students.xml
    try {
    	//创建解析器
    	SAXReader reader = new SAXReader();
    	//通过read()方法将students.xml解析成Document对象
		Document document = reader.read("students.xml");
		//获取文档中的根元素
		Element rootElement = document.getRootElement();
		//获取根元素下的子元素
		List<Element> elements = rootElement.elements();
		for (Element element : elements) {
			//获取元素的属性值
			String id = element.attributeValue("id");
			//Element element2 = element.element("name");
			//String name = element2.getText();
			//获取元素的文本值
			String name = element.elementText("name");
			String age = element.elementText("age");
			Student student = new Student(id,name,age);
			System.out.println(student);
		}
		
	} catch (DocumentException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

Xpath查询

  • XPath 是在 XML 文档中查找信息的语言
  • XPath通过元素和属性进行查找,简化了Dom4j查找节点的过程,是W3C组织发布的标准。
  • 使用XPath必须导入jaxen-1.1-beta-6.jar包
  • 具体语法见 XPathTutorial(菜鸟必备)
  • 两个重要方法:
    • document.selectSingleNode("/students/student[@id=‘1’]")
    • document.selectNodes("/students/student")
      -基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径
  • 具参见帮助文档

猜你喜欢

转载自blog.csdn.net/qq_34548401/article/details/85009215