.net 获取xml里面的值_XML技术

153922fc90db6548da73a0a8ac6a7568.png

【018】

1. XML概念和体系

(1) 简述XML的特点?

XML 指可扩展标记语言(EXtensible Markup Language),没有预定义标签,需要自行定义标签XML 主要作用是数据存储和传输(传输)而HTML 主要作用是用来显示数据(显示)

特点:

  1. XML 数据以纯文本格式存储
  2. 实现不同应用程序之间的数据通信
  3. 实现不同平台间的数据通信和数据共享
  4. 使用 XML 将不同的程序、不同的平台之间联系起来

(2) 一个标准的XML文档由什么组成?

根元素、属性、元素和文本组成

2. XML基本语法

(1) 简述XML的基本语法?

  • 有且只有一个根元素
  • XML 文档声明必须放在文档的第一行
  • 所有标签必须成对出现
  • XML 的标签严格区分大小写
  • XML 必须正确嵌套
  • XML 中的属性值必须加引号
  • XML 中,一些特殊字符需要使用“实体”
  • XML 中可以应用适当的注释

(2) 简述XML的命名规则?

  1. 名称可以包含字母、数字及其他字符
  2. 名称不能以数字或者标点符号开始
  3. 名称不能以字母 xml 开始
  4. 名称不能包含空格

3. Schema技术

(1) 简述什么是DTD验证及DTD验证的局限性?

DTD:验证XML是否有效

局限性:

1、DTD 不遵守 XML 语法

2、DTD 数据类型有限

3、DTD 不可扩展

(2) 什么Schema技术?使用Schema验证XML文档的步骤是什么?

Schema 是 DTD 的代替者,名称为 XML Schema,用于描述XML 文档结构,比 DTD 更加强大,最主要的特征之一就是XML Schema 支持数据类型

步骤:

  1. 创建 SchemaFactory 工厂
  2. 建立验证文件对象
  3. 利用 SchemaFactory 工厂对象,接收验证的文件对象,生成 Schema 对象
  4. 产生对此 schema 的验证器
  5. 要验证的数据(准备数据源)
  6. 开始验证

DOM方式解析XML数据

(3) 简述解析XML文件的方式有哪些?

  • DOM 解析 (java 官方提供)
  • SAX 解析(java 官方提供)
  • JDOM 解析(第三方提供)
  • DOM4J 解析(第三方提供)

(4) 简述DOM解析XML的步骤?

  1. 创建一个 DocumentBuilderFactory 的对象
  2. 创建一个 DocumentBuilder 对象
  3. 通过DocumentBuilder的parse(...)方法得到Document对象
  4. 通过 getElementsByTagName(...)方法获取到节点的列表
  5. 通过 for 循环遍历每一个节点
  6. 得到每个节点的属性和属性值
  7. 得到每个节点的节点名和节点值

测试代码:

<?xml version="1.0" encoding="UTF-8"?>

使用dom解析:

public 

4. SAX方式解析XML数据

(1) 简述什么是SAX解析方式?

SAX,全称 Simple API for XML,是一种以事件驱动的XMl API,SAX 与 DOM 不同的是它边扫描边解析,自顶向下依次解析,由于边扫描边解析,所以它解析 XML 具有速度快,占用内存少的优点

(2) 简述SAX解析XML的步骤?

  1. 创建 SAXParserFactory 的对象
  2. 创建 SAXParser 对象 (解析器)
  3. 创建一个 DefaultHandler 的子类
  4. 调用 parse 方法

测试代码:

public class BookDeaultHandler extends DefaultHandler {
	//重写第一个方法
	/**解析xml文档开始时调用*/
	@Override
	public void startDocument() throws SAXException {
		// TODO Auto-generated method stub
		super.startDocument();
		System.out.println("解析xml文档开始");
	}
	/*解析xml文档结束时调用*/
	@Override
	public void endDocument() throws SAXException {
		// TODO Auto-generated method stub
		super.endDocument();
		System.out.println("解析xml文档结束");
	}
	/**解析xml文档中的节点时调用*/
	@Override
	public void startElement(String uri, String localName, String qName, 
Attributes attributes) throws SAXException {
		// TODO Auto-generated method stub
		super.startElement(uri, localName, qName, attributes);
		//System.out.println("解析xml文档中的节点时调用");
		/**判断,如果是book节点,获取节点的属性和属性值*/
		if("book".equals(qName)){
			//获取所有的属性
			int count=attributes.getLength();//属性的个数
			//循环获取每个属性
			for(int i=0;i<count;i++){
				String attName=attributes.getQName(i);//属性名称
				String attValue=attributes.getValue(i);//属性值
				System.out.println("属性名称:"+attName+"t属性值为:"+attValue);
			}
		}else if(!"books".equals(qName)&&!"book".equals(qName)){
			System.out.print("节点的名称:"+qName+"t");
		}
		
	}
	/**解析xml文档中的节点结束调用*/
	@Override
	public void endElement(String uri, String localName, String qName)
 throws SAXException {
		// TODO Auto-generated method stub
		super.endElement(uri, localName, qName);
		//System.out.println("解析xml文档中的节点结束调用");
	}
	@Override
	public void characters(char[] ch, int start, int length) throws SAXException {
		// TODO Auto-generated method stub
		super.characters(ch, start, length);
		String value=new String(ch,start,length);
		if(!"".equals(value.trim())){
			System.out.println(value);
		}
		
	}
}

TestSAXParse类:

public 

5. JDOM解析XML数据

(1) 简述什么是JDOM?

JDOM 是一种解析 XML 的 Java 工具包,它基于树型结构,利用纯Java的技术对XML文档实现解析。所以适合于Java语言

(2) JDOM解析XML的步骤?

  1. 创建一个 SAXBuilder 对象
  2. 调用 build 方法,得到 Document 对象(通过 IO 流)
  3. 获取根节点
  4. 获取根节点的直接子节点的集合
  5. 遍历集合

测试代码:

public 

6. DOM4J解析XML数据

(1) 简述DOM4J技术 ?

DOM4J 是一个 Java 的 XML API,是 JDOM 的升级品,用来读写 XML 文件的JDOM 的一种智能分支,它合并了许多超出基本 XML 文档表示的功能。它使用接口和抽象基本类方法。具有性能优异、灵活性好、功能强大和极端易用的特点。是一个开放源码的文件

DOM4J 解析 XML 的步骤

  1. 创建 SAXReader 对象
  2. 调用 read 方法
  3. 获取根元素
  4. 通过迭代器遍历直接节点

(2) 四种解析XML技术的特点?

  1. DOM 解析:形成了树结构,有助于更好的理解、掌握,且代码容易编写。解析过程中,树结构保存在内存中,方便修改。
  2. SAX 解析:采用事件驱动模式,对内存耗费比较小。适用于只处理 XML 文件中的数据时
  3. JDOM 解析:仅使用具体类,而不使用接口。API 大量使用了 Collections 类。
  4. DOM4J 解析:JDOM 的一种智能分支,它合并了许多超出基本 XML 文档表示的功能。它使用接口和抽象基本类方法。具有性能优异、灵活性好、功能强大和极端易用的特点。是一个开放源码的文件

实体类Book:

public 

测试类:

public 

7. XPATH技术快速的获取节点

(1) 简述XPATH技术?

XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力

(2) 使用XPATH技术快速获取节点需要做哪些准备工作?

  1. DOM4J 的 jar 包
  2. Jaxen 的 jar 包
  3. Xpath 中文文档

测试代码:

public 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值