【发布时间】:2011-08-02 20:39:24
【问题描述】:
我有这个 xml 文件:
<Menu>
<item value="boiled">
<image value="boiling1recipe">boiling1.jpg</image>
<recipeImage>png1.png</recipeImage>
<recipeImage>png2.png</recipeImage>
<recipeImage>png3.png</recipeImage>
<recipeImage>png4.png</recipeImage>
</item>
<item value="boiled">
<image value="boiling2recipe">boiling2.jpeg</image>
<recipeImage>png5.png</recipeImage>
<recipeImage>png6.png</recipeImage>
<recipeImage>png7.png</recipeImage>
<recipeImage>png8.png</recipeImage>
</item>
<item value="rosted">
<image value="roasted1recipe">roasted1.jpeg</image>
<recipeImage>png8.png</recipeImage>
<recipeImage>png9.png</recipeImage>
<recipeImage>png10.png</recipeImage>
<recipeImage>png11.png</recipeImage>
</item>
<item value="rosted">
<image value="roasted2recipe">roasted2.jpeg</image>
<recipeImage>png12.png</recipeImage>
<recipeImage>png13.png</recipeImage>
<recipeImage>png1.png</recipeImage>
<recipeImage>png2.png</recipeImage>
</item>
</Menu>
现在,
我是这样解析的:
DDXMLNode *node = [item attributeForName:@"value"];
if ([[node stringValue] isEqual:@"boiled"]) {
[listOfBoiledItems addObject:model];
DDXMLNode *node1 = [item attributeForName:@"value"];
if ([[node1 stringValue] isEqual:@"boiling1recipe"]) {
[listOfRecipies1 addObject:model];
}
else if ([[node1 stringValue] isEqual:@"boiling2recipe"]) {
[listOfRecipies2 addObject:model];
}
}
else if ([[node stringValue] isEqual:@"rosted"]) {
[listOfRostedItems addObject:model];
DDXMLNode *node1 = [item attributeForName:@"value"];
if ([[node1 stringValue] isEqual:@"roasted1recipe"]) {
[listOfRecipies6 addObject:model];
}
else if ([[node1 stringValue] isEqual:@"roasted2recipe"]) {
[listOfRecipies7 addObject:model];
}
}
这里, 编译器读取父节点值,即“boiled”和“rosted”,但不读取智利节点值,即“boiling1recipe”、“boiling2recipe”、“roasted1recipe”和“roasted2recipe”。 可能是什么问题,意味着我做错了什么? 请指导我,因为这是我第一次进行解析。
【问题讨论】:
标签: iphone objective-c xml xml-parsing