我正在解析此文档: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);
}
如何找到该元素?
答案 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.
}
}