SHXMLParser 1.1.0

SHXMLParser 1.1.0

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布上次发布2014年12月

未声明 维护。



  • Narasimharaj C

易于使用的基于 NSXMLParser 构建的自动 XML 解析器。只需两步即可将 XML 数据转换为本机 'Obj C 对象'。

如何使用

将 SHXMLParser 库文件夹添加到您的项目。

XML 示例

<rss>
    <channel>
        <item id='1'>
            <title>I am under surveillance by Canadian agents, my computer has been backdoored</title>
            <link>http://log.nadim.cc/?p=110</link>
            <comments>http://news.ycombinator.com/item?id=5194489</comments>
            <description><a href="http://news.ycombinator.com/item?id=5194489">Comments</a></description>
        </item>
        <item id='2'>
            <title>Why I Like Go</title>
            <link>https://gist.github.com/freeformz/4746274</link>
            <description><a href="http://news.ycombinator.com/item?id=5195257">Comments</a></description>
        </item>
    </channel>
</rss>

使用以下代码可以从上述类似的 XML 中获取字典对象数组。属性将被自动获取。

SHXMLParser     *parser         = [[SHXMLParser alloc] init];
NSDictionary    *resultObject   = [parser parseData:self.webServicesData];
NSArray         *dataArray      = [SHXMLParser getDataAtPath:@"rss.channel.item" fromResultObject:resultObject];

注意:如果路径("rss.channel.item")只包含一个项目,则将返回 NSDictionary 而不是 NSArray。如果路径指向只有一个字符串值的叶子节点,将返回字符串值。

如果您想要将数据数组中的字典对象转换为类对象以提高类型安全,请使用以下代码。

NSArray *classVariables = [NSArray arrayWithObjects:@"title", @"link", @"comments", @"description", nil];
self.dataItems = [SHXMLParser convertDictionaryArray:dataArray toObjectArrayWithClassName:@"DataItem" classVariables:classVariables];

请注意,对于上述转换,应包含在 'classVariables' 数组中提到的公开变量名称的 'DataItem' 类,否则您将获得运行时错误。

到此为止,无需编写大量针对节点和元素的特定解析代码来使用 NSXMLParser 从 XML 数据中检索数据。

要求 需要 iOS 5.0+ 和 ARC。使用 Xcode 4.5+ 构建并测试。

随意分叉和更新库

许可 MIT 许可