封装工具类实现XMLPull解析

博客介绍了一个利用XMLPull技术封装的PullParserTool工具类,它将XML解析过程模块化。XMLParserHelper接口处理开始和结束标签,而XMLParseHelperFather作为父类提供公共参数,其子类如XMLParseHelperForBooks实现具体解析操作,返回所需数据(如Book集合)。这种设计允许方便地扩展以解析不同类型的XML数据,如XMLParseHelperForPersons。博客提供了项目的Git地址供进一步参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

       首先上来就是类图

       PullParserTool里面封装了Pull解析的一些过程,除了开始标签结束标签以外,其他代码都是Pull的常规写法,开始标签结束标签的处理主要交给实现XMLParserHelper的类来处理。我们看到PullParserTool中“有一个”XMLParserHelper的实例(Head First设计模式中:“有一个”比“是一个”好)。一旦代码执行到了开始标签结束标签的位置,就执行xmlParseHelper.xmlPullParserStart(parser)或者xmlParseHelper.xmlPullParserEnd(parser)。

        接着让XMLParseHelperFather这个类实现接口xmlParseHelper,父类什么也不做,定义一些子类的公共参数,考虑到子类以后会有公共的方法,所以才XMLParseHelperFather作为一个父类存在。

        XMLParseHelperFather的子类实现具体的解析操作,以XMLParseHelperForBooks为例,XMLParseHelperForBooks的解析格式如下,

也就是PullParserTool中,一旦代码执行到了开始标签结束标签的位置,其实执行的是XMLParseHelperFather的子类XMLParseHelperForBooks的xmlPullParserStart(parser)或者xmlPullParserEnd(parser)方法。执行完毕后,通过getData可以得到一个Object类型的数据,这个数据通过转型就是我们要的Book的集合。

        当出现更多要解析的类型的时候,比如XMLParseHelperForPersons,只需要在XMLParseHelperForPersons中实现具体的解析操作,就可以得到对应的Person的集合,这样就实现了模块化,不管以后新增多少XML文件格式,只要让XMLParseHelperFather的子类去实现就好。

最后附上git地址:https://github.com/WhyAllAIX/PullParserTool/blob/master/XMLpull%E8%A7%A3%E6%9E%90%E5%92%8CXML%E5%BA%8F%E5%88%97%E5%8C%96.rar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值