1、XML与HTML的区别
XML 不是对 HTML 的替代 ,XML 是对 HTML 的补充。
XML 不会替代 HTML,理解这一点很重要。在大多数 web 应用程序中,XML 用于传输数据,而 HTML 用于格式化并显示数据。
对 XML 最好的描述是:XML 是独立于软件和硬件的信息传输工具。
比较内容 | HTML | XML |
可扩展性 | 不具有扩展性 | 是元标记语言,可自定义新的标记 |
作用 | 焦点是数据的外观,旨在显示信息 | 被设计来传输和存储数据,焦点是数据的内容 |
语法要求 | 不要求标记的嵌套、配对等,不要求标记之间具有一定的顺序 | 严格要求嵌套、配对,遵循统一的顺序结构要求 |
可读性可维护性 | 难于阅读、维护 | 结构清晰、便于阅读、维护 |
数据与格式 | 数据和格式在一起 | 数据和格式分离 |
2、XML解析
XML解析方式分为两种:DOM方式和SAX方式
DOM:Document Object Model,文档对象模型。这种方式是W3C推荐的处理XML的一种方式。
SAX:Simple API for XML。这种方式不是官方标准,属于开源社区XML-DEV,几乎所有的XML解析器都支持它。
XML解析开发包
JAXP:是SUN公司推出的解析标准实现。JDK
Dom4J:是开源组织推出的解析开发包。(SUN公司的一些技术的实现都在用)
JDom:是开源组织推出的解析开发包。
3、JAXP
JAXP:(Java API for XML Processing)开发包是JavaSE的一部分,它由以下几个包及其子包组成:(javase api)
org.w3c.dom:提供DOM方式解析XML的标准接口
org.xml.sax:提供SAX方式解析XML的标准接口
javax.xml:提供了解析XML文档的类
javax.xml.parsers包中,定义了几个工厂类。我们可以通过调用这些工厂类,得到对XML文档进行解析的DOM和SAX解析器对象。
DocumentBuilderFactory
SAXParserFactory
对xml进行解析 首先要获取到解析器
javax.xml.parsers 包中的DocumentBuilderFactory用于创建DOM模式的解析器对象 , DocumentBuilderFactory是一个抽象工厂类,
它不能直接实例化,但该类提供了一个newInstance方法 ,这个方法会根据本地平台默认安装的解析器,自动创建一个工厂的对象并返回。
调用 DocumentBuilderFactory.newInstance() 方法得到创建 DOM 解析器的工厂。
调用工厂对象的 newDocumentBuilder方法得到 DOM 解析器对象。
调用 DOM 解析器对象的 parse() 方法解析 XML 文档,得到代表整个文档的 Document 对象,进行可以利用DOM特性对整个XML文档进行操作了。
DOM模型(document object model)
DOM解析器在解析XML文档时,会把文档中的所有元素,按照其出现的层次关系,解析成一个个Node对象(节点)。