JSON/XML 解析 iPhone NSPredicate
我正在尝试创建一些使用 xml 或 json 来显示一些内容的小应用程序。
我有很多“观点”,我只想从她的 ID 中选择一个。
XML 看起来像这样(如果你愿意,我可以放入 json,但它很难阅读):
<?xml version="1.0" encoding="utf-8"?>
<views>
<view id="home" type="nav">
<title>Help</title>
<section id="1">
<title>Aide</title>
<item id="1" link="dev_mac">Dev Mac</item>
<item id="2" link="dev_iphone">Dev iPhone</item>
<item id="3" link="examples">Examples</item>
</section>
</view>
<view id="dev_mac" type="nav">
<nav_title>Help</nav_title>
<content_title>Dev Mac</content_title>
<text>balbalbalblablablalbalblalbal</text>
<section id="1">
<item id="1" link="lesson_1">Lesson 1</item>
<item id="2" link="download">Downlaod</item>
</section>
</view>
<view id="download" type="content">
<nav_title>Dev Mac</nav_title>
<title>Lesson 1</title>
<content_text>balblablalbalblalbalb</content_text>
<content_title>A. UIKit</content_title>
<content_text>UIKit is .....</content_text>
</view>
</views>
我有一个包含 3 个 NSDictionary (第 3 个视图)的数组。
我怎样才能通过她的ID只选择一个视图?
提前致谢
BiB1
I'm trying to create a little apps which use xml or json to display some content.
I'have a lot of "views" and i want to select just one from her id.
XML look like that (i can put json if you want but it's very hard to read) :
<?xml version="1.0" encoding="utf-8"?>
<views>
<view id="home" type="nav">
<title>Help</title>
<section id="1">
<title>Aide</title>
<item id="1" link="dev_mac">Dev Mac</item>
<item id="2" link="dev_iphone">Dev iPhone</item>
<item id="3" link="examples">Examples</item>
</section>
</view>
<view id="dev_mac" type="nav">
<nav_title>Help</nav_title>
<content_title>Dev Mac</content_title>
<text>balbalbalblablablalbalblalbal</text>
<section id="1">
<item id="1" link="lesson_1">Lesson 1</item>
<item id="2" link="download">Downlaod</item>
</section>
</view>
<view id="download" type="content">
<nav_title>Dev Mac</nav_title>
<title>Lesson 1</title>
<content_text>balblablalbalblalbalb</content_text>
<content_title>A. UIKit</content_title>
<content_text>UIKit is .....</content_text>
</view>
</views>
I have an array which contain 3 NSDictionary (the 3 view).
How can i select juste one view by her id ?
Thanks by advance
BiB1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您不能直接在 XML 上使用
NSPredicate
。您必须将 XML(或 JSON)解析到一些标准的 Cocoa 容器(NSArray
等)中,然后使用它。能够直接过滤 XML 的唯一方法是使用 XPath 之类的东西,尽管您必须使用 libxml 才能做到这一点。
You can't use
NSPredicate
on XML directly. You'll have to parse the XML (or JSON) into some standard Cocoa container (NSArray
, etc) and then use it on that.The only way you'd be able to filter the XML directly is to use something like XPath, though you'd have to drop to libxml to do that.
它应该可以工作 - 只要数据变量实际上是一个包含键为“id”的字典的数组
It should work - as long as the data variable is actually an array containing a dictionary with the key "id"
尝试将 xml 重新格式化为 plist(您可以使用 xcodes plist 编辑器或使用您自己的)使用:
在 .h 文件中:
在 .m 文件中:
然后访问每个字典:
在本例中 (0) 将返回 'Home'
Try reformatting the xml as a plist (you could use xcodes plist editor or roll your own) use:
In .h file:
In .m file:
then to access each dict:
In this example (0) will return 'Home'