Objective c 检查有效的xml-如果xml无效,TBXML将崩溃

Objective c 检查有效的xml-如果xml无效,TBXML将崩溃,objective-c,xml,Objective C,Xml,你好 在我的应用程序中,处理xml并对其进行解析,一切正常。 但是由于xml来自远程源,我想添加一些代码,在解析xml之前检查xml是否有效;主要是因为如果xml无效,TBXML会使应用程序崩溃 如何检查xml是否有效?我尝试使用“try”和“catch”,但错误没有被捕获;这就是我的代码 TBXMLElement * root ; @try { root = tbxml.rootXMLElement; } @catch (NSException * e) { NSLog(@"

你好 在我的应用程序中,处理xml并对其进行解析,一切正常。 但是由于xml来自远程源,我想添加一些代码,在解析xml之前检查xml是否有效;主要是因为如果xml无效,TBXML会使应用程序崩溃

如何检查xml是否有效?我尝试使用“try”和“catch”,但错误没有被捕获;这就是我的代码

TBXMLElement * root ;   
@try {
root = tbxml.rootXMLElement;
}
@catch (NSException * e) {      
NSLog(@"error");
}

我做错了什么?

您可以使用if语句检查它是否为nil。请参见下面的示例

TBXMLElement * rootXMLElement = tbxml.rootXMLElement;

    if (rootXMLElement != nil)

        NSLog(@"ok");
        else 
        NSLog(@"Can't proceed: XMLElement is nil");

您可以检查是否存在有效的根元素。像这样的东西:

if ([[TBXML elementName:parser.rootXMLElement] isEqualToString:@"fooBar"])
...

我已经有了这个问题,我正在尝试捕捉服务器返回404错误页面而不是xmlI的情况。我也有同样的问题,TBXML中的EXC_BAD_访问。您找到解决方案了吗?
TBXML
真的是大写吗?OP似乎使用了小写的
tbxml
变量,或者我误解了什么?应该是这样的。在我的示例中,
elementName:
是从类
TBXML
调用的静态方法<代码>tbxml在OP的代码中是一个实例变量IMHO。大家好,谢谢你们的回复,但两年后?:)我记不起我是如何解决这个问题的,或者使用了不同的方法,但老实说,我记不起来了。