在XML文档</in list>中找不到元素<in list id =“1”>

时间:2011-06-17 12:10:24

标签: xcode parsing element

我正在解析此文档:http://greenmoss.dk/recipe01.xml并浏览每个元素并保存数据。但我无法找到这个元素:

  

ingList id =“1”

我试过这个:

        //--------ING-List--------

else if ([elementName isEqualToString:@"ingList id=\"1\""])
{
    NSLog(@"ING-LIST HERE!!!!", nil);
}

并尝试了这个:

//--------ING-List--------

else if ([elementName isEqualToString:@"ingList"])
{
    NSLog(@"INGLIST HERE!!!!", nil);
}

如何找到该元素?

1 个答案:

答案 0 :(得分:0)

第一个会失败而第二个会成功是有道理的。在:

<ingList id="1"> ... </ingList>

元素名称是“ingList”。该元素也有一个属性;此属性的名称为“id”,其值为“1”。

因为元素名称只是“ingList”,[elementName isEqualToString:@"ingList"]将成功,但[elementName isEqualToString:@"ingList id=\"1\"]将失败,因为id =“1”不是元素名称的一部分。

为了使其工作,您必须首先检查元素名称是否为“ingList”(您已经可以这样做)。如果是,则必须从该元素获取属性,确定其中一个是否具有名称“id”,以及该属性的值是否为“1”。

else if ([elementName isEqualToString:@"ingList"])
{
    // Find attribute "id"
    // Determine if value of "id" is "1"
    if (...) {
        // Do what you need to do.
    }
}

不幸的是,我不知道您使用的语言或正在使用的XML库,因此我无法填写确定属性值的详细信息。

编辑:环顾四周,看起来您的内部测试可能与以下内容类似,但就像我说的那样,我没有这方面的经验所以代码可能是错误的

else if ([elementName isEqualToString:@"ingList"])
{
    // Find value of attribute "id"
    NSString *id = [NSString stringWithFormat:@"%@", [attributeDict objectForKey:@"id"]];        
    // Determine if value of "id" is "1"
    if ([id isEqualToString:@"1"]) {
        // Do what you need to do.
    }
}