kXML-使用说明

来源:互联网 发布:linux打包压缩文件夹 编辑:程序博客网 时间:2024/06/06 15:28
原文:http://kxml.sourceforge.net/kxml2/

kXML 2 实现了 XmlPull API。要了解关于 XmlPull 解析器及接口说明的信息,请访问xmlpull.org。

kXML 2 基于 BSD 许可协议。

Naveen Balani 为 IBM 开发者工厂撰写了一篇很优秀的介绍 kXML 2 的文章。

推荐的调用约定

当传递一个 XMLPull 解析器给子程序的时候,最好确保当前位置在“开始标签(如<element>)”处(以使得子程序能分析标签的属性)。后置条件通常应该是当前的位置是匹配的“结束标签(如</element>)”。

解析纯元素和纯文本内容

可以这样使用 XML Pull API 来解析一般的 XML 内容:用一个循环来推进事件,并用 switch 语句根据事件类型进行处理。然而,当使用 XML 进行数据传输时(相对于文本文档),大多数 XML 元素只包含文本或只包含其他元素(可能有更深层次的子元素)。在这些常见的情况下,可以使用 XmlPull API 的方法nextTagnextText 来显著地简化解析过程。此外,可以选择性地使用require() 方法来断言一个确定的解析器状态。下面的范例展示了在一个具体情境下解析器方法的使用。外围元素elements 拥有纯元素的内容;它包含的 text 元素拥有纯文本的内容:

Xml代码 复制代码 收藏代码
  1. <elements>  
  2.   <text>text1</text>  
  3.   <text>text2</text>  
  4. </elements>  


解析代码

Java代码 复制代码 收藏代码
  1. parser.nextTag();   
  2. parser.require(XmlPullParser.START_TAG, null"elements");   
  3.   
  4. while(parser.nextTag() == XmlPullParser.START_TAG) {   
  5.   parser.require(XmlPullParser.START_TAG, null"text");   
  6.   
  7.    // 处理元素内容   
  8.    System.out.println("text content: "+ parser.nextText());   
  9.   
  10.   parser.require(XmlPullParser.END_TAG, null"text");   
  11. }   
  12.   
  13. parser.require(XmlPullParser.END_TAG, null"elements");  


nextTag() 使解析器推进到下一个开始标签或结束标签,跳过不重要的事件如:空白字符、注释、处理指令等。nextText() 要求当前位置是开始标签,会返回相应元素的文本内容。后置条件是当前位置是结束标签。请注意,require() 调用是可选的,他们可能会被完全忽略掉。
原创粉丝点击