Java/XML

维基教科书,自由的教学读本

XML--EXtensible Markup Language(可扩展标记语言)是一种很流行的简单的基于文本的语言来用作应用程序之间的通信模式。它被认为是传输标准装置和存储数据。JAVA提供了极好的支持和丰富的库来解析,修改或查询XML文档。 XML是一种简单的基于文本的语言,它被设计为储存和运输以纯文本格式的数据。它代表着可扩展标记语言。以下是一些XML的显着特征。

1、XML是一种标记语言。

2、XML是一种标记语言就像HTML一样。

3、XML标签不是像HTML那样预定义。

4、可以定义自己的标签,这就是为什么它被称为可扩展的语言。

5、XML标签被设计成自描述性的。

6、XML是W3C推荐用于数据存储和传输。

示例

   <?xml version="1.0"?>
   <Class>
      <Name>First</Name>
      <Sections>
         
         
      </Sections>
   </Class>

优势

以下是XML提供的优势:

   技术无关 - 作为普通文本,XML是技术独立。它可以用于由任何技术进行数据的存储和传输的目的。
   人类可读 - XML使用简单的文本格式。它是人类可读和可以理解的。
   可扩展性 - 在XML,自定义标签可以创建和很容易使用。
   允许验证 - 使用XSD,DTD和XML结构可以很容易地验证。

缺点

下面是使用XML的缺点:

   冗余的语法 - 通常XML文件中包含大量的重复计算。
   冗余 - 作为一个冗长的语言,XML文件大小增加了传输和存储成本。


Java XML解析器 什么是XML解析?

解析XML是指将通过XML文档访问数据或修改数据的一个操作或方法。


XML解析技术有两种 DOM SAX

   DOM方式

根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象

   优点: 便于实现增 删 改 查
   缺点: XML文件过大可能造成内存溢出
   SAX方式

采用事件驱动模型边读边解析:从上到下一行行解析,解析到某一元素, 调用相应解析方法

   优点: 不会造成内存溢出,
   缺点: 查询不方便,但不能实现 增 删 改

不同的公司和组织提供了针对DOM和SAX两种方式的解析器

   SUN的jaxp
   Dom4j组织的dom4j(最常用:如Spring)
   JDom组织的jdom

关于这三种解析器渊源可以参考java解析xml文件四种方式. JAXP 解析 Javax.xml.parsers

JAXP是JavaSE的一部分,在javax.xml.parsers包下,分别针对dom与sax提供了如下解析器: Dom

   DocumentBuilder
   DocumentBuilderFactory

SAX

   SAXParser
   SAXParserFactory
    

XML解析器是什么?

XML解析器提供方法来访问或修改XML文档中的数据。 Java提供了多种选择来解析XML文档。以下是各种类型解析器其通常用于解析XML文档。

   Dom解析器 - 解析通过加载该文件的全部内容,并创建其完整分级树中存储的文件。
   SAX解析器 - 解析基于事件触发器的文档。不完整(部分)的文件加载到存储器中。
   JDOM解析器 - 解析以类似的方式,以DOM解析器但更简单的方法的文档。
   StAX解析器 - 解析以类似的方式,以SAX解析器但在更高效的方式的文档。
   XPath解析器 - 解析基于表达式XML并广泛选择使用XSLT。
   DOM4J解析器 - Java库来解析XML,XPath和使用Java集合框架XSLT,为DOM,SAX和JAXP的支持。

JAXB和XSLT的API来处理XML解析在面向对象方法。