使用kxml解析xml文件(二)
一. 不同XML格式上的差异
<Bil BilID="09120005">
<Product PID="XS000-3">
<Package Needuan="10"/>
<Package Needuan="8"/>
</Product>
</Bil>
与
<channel>
<title>Meerkat: An Open2 Wire Service</title>
<link>http://meerkat.oreillynet.com</link>
<description>
Meerkat is a Web-based syndicated content reader based on RSS ("Rich Site Summary").
RSS is a fantastic, simple-yet-powerful syndication system rapidly gaining momentum.
</description></channel></rss>
的差异:
前者TAG后面有内容,例如<Bil ****></Bil>,后则是<title>text</title>
结束的方式不同<package ****/>
二、处理上的差异
1. KXML在解析时,将<Bil ****>认为是一个START_TAG;因此,对
<Bil ****></Bil>的解析:
紧接着START_TAG的就是END_TAG,中间没有TEXT;而
<title>text</title>的解释是:
START_TAG--->TEXT--->END_TAG
提取<Bil ****>中"***"的方法:
event.getAttributeCount()
event.getAttribute(i)
2.KXML对<Package Needuan="10"/>的解析:
START_TAG---->END_TAG
当KXML遇到/>时,就会产生END_TAG
贴一段代码:
private void parsekXMLItems(XmlParser parser) throws IOException{
// 接收事件类型
//int eventType = parser.getEventType();
ParseEvent event = parser.read ();
// 当事件类型不为文档末尾时
while (event.getType() != Xml.END_DOCUMENT) { // true
// System.out.println("parsekXMLItems");
switch (event.getType()) {// 判断事件类型
case Xml.START_TAG:// 为开始标记时
System.out.print("<" + event.getName());// 输出开始标记
frm.append("<" + event.getName());// 输出开始标记
// 当有属性时,输出属性
System.out.println("availableCount:"+event.getAttributeCount());
if (event.getAttributeCount() >= 1)
for (int i = 0; i < event.getAttributeCount(); i++) {
相关文档:
序列化是将对象转换成易于传输的形式的过程。例如,可以序列化对象,并使用 HTTP 通过 Internet 在客户端和服务器之间进行传输。另一方面,反序列化在流中重新构建对象。
XML 序列化只将对象的公共字段和属性值序列化为 XML 流。XML 序列化不包括类型信息。例如,如果 Library 命名空间中存在 Book 对象,则不能保证将它反 ......
XML 序列化可以采用从简单到复杂的多种形式。例如,可以序列化只包含公共字段和公共属性的类,如 XML 序列化简介中所示。下面的代码示例讨论各种高级方案,包括如何使用 XML 序列化生成符合特定 XML 架构 (XSD) 文档的 XML 流。
序列化数据集
除了序列化公共类的实例外,还可序列化 DataSet 的实例,如下面的代码示例所示 ......
dom4j 是一种解析 XML 文档的开放源代码 XML 框架。本文介绍如何使用包含在 dom4j 中的解析器创建并修改 XML 文档。
dom4j API 包含一个解析 XML 文档的工具。本文中将使用这个解析器创建一个示例 XML 文档。清单 1 显示了这个示例 XML 文档,catalog.xml。
清单 1. 示例 XML 文档(catalog.xml)
<?xml version=" ......
通常情况下,你可以从服务器上为tree控件取得XML数据 ,你也可以在<mx:Tree>Tag里直接定义格式良好的XML数据。
你可以使用<mx:XML>或者<mx:XMLList>Tag在mxml里定义XML数据。
你可以将XML object直接作为一个层级数据控件的dataProvider,however,if the object changes dynamically,你应该做如下处理: ......