因此,我在查找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];可以解决问题!!!谢谢谢谢 :)

最佳答案

14459和300不是键,它们是同类项目的两个元素的值

尝试

NSString *itemValue = [TBXML textForElement:itemElement];

关于ios - 用TBXML解析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17576163/

10-12 03:31