使用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 对象,则不能保证将它反 ......
我用ActiveXObject("Microsoft.xmldom")来装载xml文档时,竟然老是提示装载失败,后来上网搜索了下,说是不能直接包含这5个符号('><&"),必须选用&xx;方式来转义,可我找遍XML也没发现这些。
后来我独行排除,才发现有一个元素的属性值为有“|”,去除后就正常了。我真是觉得奇怪,网上也没有说 ......
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,你应该做如下处理: ......