我必须管理这个丑陋的 xml 结构。
如何查询所有以/包含“Key”开头的 Key-Tag?
Xml-结构:
<Data>
<Rec>
<Key1>0001</Key1>
<Key2>0015</Key2>
<Key3>0002</Key3>
<Key4>0022</Key4>
...
</Rec>
<Rec>
<Key1>0015</Key1>
<Key2>0022</Key2>
<Key3>0002</Key3>
<Key4>0001</Key4>
...
</Rec>
...
</Data>
Rec-Object-Structure:
@interface Rec : NSObject
@property (nonatomic, copy) NSMutableDictionary *content;
@end
这是我在 Key1 上选择的代码:
predicateRecs = [NSPredicate predicateWithFormat"content.%K == %@", @"Key1", @"0001"];
[result addObjectsFromArray:[recs filteredArrayUsingPredicate: predicateRecs]];
recs 是一种 NSArray 类型,包含 Rec - 对象。
%K 需要能够执行以下操作: content.@allKeys BEGINSWITH %@ == %@ ,@"Key", @"0001"`
我想获取所有带有值的键,例如0001
我该怎么做?
谢谢
Best Answer-推荐答案 strong>
我会根据您的评论使用子查询:
predicateRecs = [NSPredicate predicateWithFormat"SUBQUERY(FUNCTION(SELF, 'allKeys'), $k, SELF[$k] beginswith[cd] %@ AND SELF[$k] == %@).@count > 0", @"Key",@"0001"];
Dave DeLong 是谓词大师:
http://www.mactech.com/sites/default/files/Dave_DeLong-Power_Of_Predicates.pdf
当然还有:
https://stackoverflow.com/a/5570510/312312
关于ios - NSPredicate 通过选择带有 Beginswith 的键来获取 NSDictionary 的值,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/21766548/
|