【发布时间】:2013-07-08 17:00:39
【问题描述】:
所以我在 XML 文件的元素中查找未定义元素时遇到问题。
我能够解析到元素“item”...
<item key="ser.1.device.000001-3I67-2310.max_sampling_time" label="14459" sev="none" time="1373373210">14459</item>
现在,如果您注意到,在“item”元素的末尾,我需要存储一个未定义的键......我该怎么做?这是另一个例子:(注意“300”没有定义数据的键,这就是我要存储的)
<item key="mod.dcc.heartbeat" label="" sev="none" time="1373475787">300</item>
“时间”键之后的那个位置总是有一个字符串值,我需要提取它....
这是我使用 TBXML 的代码……我只需要“添加”一些东西来获取该元素……
TBXML *tbxml = [[TBXML alloc] initWithURL:url];
NSLog(@"TBXML: %@", tbxml);
TBXMLElement *status = tbxml.rootXMLElement;
NSString *statusString = [TBXML elementName:status];
NSLog(@"ROOT: %@", statusString);
TBXMLElement *itemElement = [TBXML childElementNamed:@"item" parentElement:status];
NSMutableDictionary *loggerData = [[NSMutableDictionary alloc] init];
do
{
NSString *key = [TBXML valueOfAttributeNamed:@"key" forElement:itemElement];
NSString *label = [TBXML valueOfAttributeNamed:@"label" forElement:itemElement];
NSString *sev = [TBXML valueOfAttributeNamed:@"sev" forElement:itemElement];
NSString *time = [TBXML valueOfAttributeNamed:@"time" forElement:itemElement];
NSString *data = [TBXML valueOfAttributeNamed:@"data" forElement:itemElement];
//NSLog(@"Key = %@ : Label = %@ : Sev = %@ : Time = %@ : Data = %@", key, label, sev, time, data);
NSArray *array = [[NSArray alloc] initWithObjects:label,sev, time, data, nil];
[loggerData setObject:array forKey:key];
} while ((itemElement = itemElement->nextSibling));
编辑
将NSString *data = [TBXML valueOfAttributeNamed:@"data" forElement:itemElement]; 更改为NSString *itemValue = [TBXML textForElement:itemElement]; 成功了!!!谢谢谢谢:)
【问题讨论】:
-
您要获取哪个未定义的密钥?我没明白你的意思
-
紧跟在“时间”之后和打破项目元素之前的那个“”
-
检查编辑的答案并查看两个示例元素,我进行了编辑
标签: ios objective-c parsing uiviewcontroller tbxml