Symbian学习笔记(16) 解析XML文件(下)
字号: 小 中 大 | 打印 发布: 2009-1-08 16:33 作者: webmaster 来源: 本站原创 查看: 40次
书接上回,这篇介绍那个MContentHandler的实现,这是SAX解析方法的核心所在。
先看看我要解析的XML文件如下所示,其实很简单,因为它除了Element和Attribute以外没有其它东西了。
<?xml version="1.0" encoding="utf-8" ?>
<channels>
<channel id="10" title="时政" >
<content id="1001" title="广东牛奶中毒事件污染源调查结果1周后公布"/>
<content id="1002" title="河南淅川公安局因儿童被拐案设'局耻日'"/>
<content id="1003" title="深圳大学135名师生感染病毒引发腹泻"/>
</channel>
<channel id="11" title="国际">
<content id="1101" title="巴以将于4月7日恢复领导人级和谈"/>
<content id="1102" title="古巴解除长期禁令允许国民入住涉外酒店"/>
<content id="1103" title="联合国决定继续对刚果(金)实行武器禁运"/>
<content id="1104" title="俄拒绝接受美国进攻性战略武器问题建议"/>
</channel>
<channel id="12" title="财经">
<content id="1201" title="大飞机公司拟定名中国商用飞机有限公司"/>
<content id="1202" title="大部制新部委定编制方案6月底前上报"/>
</channel>
</channels>
我们的解析处理器的声明如下:
#include <xmlcontenthandler.h>
#include <xmldocumentparameters.h>
using namespace Xml;
class TNewsChannel
...{
public:
TInt id;
HBufC16 * title;
};
class TNewsContent
...{
public:
TInt id;
TInt pid;
HBufC16 * title;
};
class CChannelXmlHandler : public MContentHandler ...{
public:
// Constructors and destructor
~CChannelXmlHandler();
static CChannelXmlHandler* NewL();
static CChannelXmlHandler* NewLC();
RArray<TNewsChannel>* GetChannels();
RArray<TNewsCo
相关文档:
在平时工作中,难免会遇到把 XML 作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历 XML 这块来测试,因为遍历 XML 是工作中使用最多的(至少我认为)。
预 备
测试环境:
AMD 毒龙1.4G OC 1.5G、256M DDR333、Wind ......
(第1章)
(P1~3)1.用自己的语言对SGML、HTML和XML作简单介绍和对比。
SGML 是一种采用标记来描述文档数据的通用语言,SGML定义了基本的语法好,同时也允许用户建立自己的元素标记。
HTML 采用了很小一部分SGML的标记,同时HTML采用的是固定标记也不需要包含DTD。
XML 同HTML一样,都是出自于SGML标准通用标记语 ......
Web 使我们能够与任何地方的任何人通讯。广泛接受的标准(这对完全使用 Web 的潜力是至关重要的)允许 Web 在多种交互操作的技术层上通讯。一个重要层是可视化显示和用户界面,例如 HTML、GIF 和 JScript(TM) 之类的现有标准。这些标准允许创建一次页面,并且在不同时间向众多接收者显示。
尽管可视化和用户界面标准是必 ......
//xml文档内容
<?xml version = "1.0" encoding="gb2312" standalone="yes"?>
<VFPData>
<company>
<companyno>100</companyno>
<companyname>上海</companyname>
<ceoname>陈四</ceoname>
<ceoma ......
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath(NetShop.Config.DbConfigs.GetSitePath + "images/flashdata/flash.config"));
DataRow[] drs = ds.Tables[0].Select("", "[SortOrder] ASC");
//返回的是个DataRow[]:
//DataR ......