使用TBXML并解析一直没有的属性

时间:2011-03-16 16:52:50

标签: iphone xml xml-parsing

我正在使用TBXML解析xml文件。 我的xml是这样的:

<locations>
   <location>
      <id>1</id>
      <name>hello</name>
   </location>
   <location>
      ...
</locations>

一切正常,但有一个大问题:有时xml可以“跳过”“name”标签,所以,例如,有这样的东西:

...
</location>
<location>
   <id>43</id>
</location>
<location>
...
问题在哪里? 使用此代码

TBXMLElement *location = [TBXML childElementNamed:@"location" parentElement:root];
while (location){
   TBXMLElement *id = [TBXML childElementNamed:@"id" parentElement:location];
   TBXMLElement *name = [TBXML childElementNamed:@"name" parentElement:location];
   ... //do something
   location = location -> nextSibling;
}

应用程序崩溃,读取标签“name”,因为有时候没有......

我该如何解决?

谢谢!

1 个答案:

答案 0 :(得分:0)

该应用可能会崩溃,因为您的... //do something假设name为零。如果在XML中找不到<name>元素,则代码中的name var最终为零。

您在“做某事”评论中删除的代码是什么?

顺便说一句,我通过谷歌搜索“tbxml检查子节点存在”这样的信息并找到以下页面:

http://www.tbxml.co.uk/forum/viewtopic.php?f=4&t=12