XML的解析

XML的解析:从XML文档中获得需要的数据,并可以对数据进行增删改操作.

XML解析方式:

  • DOM解析:Document Object Model
  • SAX解析:Simple Api for XML

DOM解析和SAX解析的区别:

DOM:一次性将文档加载到内存,形成树结构进行解析.
缺点:如果文档特别大,容易造成内存溢出.
优点:对XML进行增删改的操作.

SAX: 采用事件驱动的方式,一行一行进行解析
缺点: 不能对文档进行增删改的操作.
优点:因为每次内存中只存在一行xml文件,不会造成内存的溢出.

SAX解析操作步骤:

  • 首先得到一个SAXParseFactory解析器工厂
  • 通过解析器工厂得到一个解析器对象SAXParse
  • 通过解析器对象得到一个xml的读取器
  • 通过事件驱动的方式开始读取xml文档,当整个xml文件加载后会产生startElement事件,当某个元素被加载解析就产生characters事件.当某一个元素结束时,就产生endElement事件.当整个xml文件加载完成后,就产生了endDocument事件.

针对以上两种不同的解析方式,不同的公司提供了不同的API实现.

  • DOM4J:开源组织提供了一套XML的解析API,主要用于服务器端的XML解析.
  • PULL : 主要应用在手机端的XML解析

DOM4J的入门案例步骤:

  • 步骤一:导入jardom4j-1.6.1.jar
  • 步骤二:创建解析器

    SaxReader reader = new SaxReader()
  • 步骤三:解析文档获得代表文档的Document对象.

    Document document = reader.read("src/config.xml")
  • 步骤四:获得跟节点

    Element root = document.getRootElement();
  • 步骤五:从根节点下查找其他的节点

    elements() 获取所有子元素,返回是List集合
    elements(String name) 获取所有指定名称子元素,返回的是List集合.
    Element.attribute(String name)
    得到一个Attribute对象,通过Attribute,调用getValues()方法得到属性值
    也可以简化成Element.attributeValue(String name);来得到属性

DOM4JXPATH配合使用解析XML:

XPATH是XPath是一门在XML文档中查找信息的语言。XPath可用来在XML文档中对元素
和属性进行遍历。
dom4j支持XPath的jar包.
     jaxen-1.1-beta-6.jar
dom4j的XPath支持的API:
    List document.selectNodes(String xPath);
    Node document.selectSingleNode(String xPath);

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念