kXML-使用说明

原文:[url]http://kxml.sourceforge.net/kxml2/[/url]

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

kXML 2 基于 BSD 许可协议。

Naveen Balani 为 IBM 开发者工厂撰写了[url=http://www-128.ibm.com/developerworks/edu/wi-dw-wi-kxml-i.html]一篇很优秀的介绍 kXML 2 的文章[/url]。

[size=large][b]推荐的调用约定[/b][/size]

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

[size=large][b]解析纯元素和纯文本内容[/b][/size]

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


<elements>
<text>text1</text>
<text>text2</text>
</elements>


解析代码


parser.nextTag();
parser.require(XmlPullParser.START_TAG, null, "elements");

while(parser.nextTag() == XmlPullParser.START_TAG) {
parser.require(XmlPullParser.START_TAG, null, "text");

// 处理元素内容
System.out.println("text content: "+ parser.nextText());

parser.require(XmlPullParser.END_TAG, null, "text");
}

parser.require(XmlPullParser.END_TAG, null, "elements");


[i][color=red]nextTag()[/color][/i] 使解析器推进到下一个开始标签或结束标签,跳过不重要的事件如:空白字符、注释、处理指令等。[i][color=red]nextText()[/color][/i] 要求当前位置是开始标签,会返回相应元素的文本内容。后置条件是当前位置是结束标签。请注意,[i][color=red]require()[/color][/i] 调用是可选的,他们可能会被完全忽略掉。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值