TBXML空标记文本

问题描述:

我使用TBXML在我的项目,我想知道TBXML空标记文本

有没有一种方法来检查,如果标签不包含文本,例如

<Description/> 

VS

<Description> This is text </Description> 

当我使用调试器并键入po [TBXML textForElement:groupdescription]时,它返回<object returned empty description>当读取的标记是没有文本的标记时,另一个完美地工作。所以我的问题是,我该如何检查?

感谢

如果你看一下TBXML来源,你会发现

+ (NSString*) textForElement:(TBXMLElement*)aXMLElement { 
if (nil == aXMLElement->text) return @""; 
return [NSString stringWithCString:&aXMLElement->text[0] encoding:NSUTF8StringEncoding]; 
} 

所以,

,如果你会做婆@“”关于广东发展银行 - 你会得到“对象返回空描述“

我想你应该检查文本的长度也许... 实际上,TBXML是一个轻的XML解析器,不包括XML验证等。这是WH y它太快了;)

+0

谢谢你是忍者 – Armand 2012-03-06 12:56:50

因为其他人也面临同样的问题。 TBXML具有这些类功能

+ (NSString*) textForElement:(TBXMLElement*)aXMLElement { 
    if (nil == aXMLElement->text) return @""; 
    return [NSString stringWithCString:&aXMLElement->text[0] encoding:NSUTF8StringEncoding]; 
} 

+ (NSString*) textForElement:(TBXMLElement*)aXMLElement error:(NSError **)error { 
    // check for nil element 
    if (nil == aXMLElement) { 
     *error = [TBXML errorWithCode:D_TBXML_ELEMENT_IS_NIL]; 
     return @""; 
    } 

    // check for nil text value 
    if (nil == aXMLElement->text || strlen(aXMLElement->text) == 0) { 
     *error = [TBXML errorWithCode:D_TBXML_ELEMENT_TEXT_IS_NIL]; 
     return @""; 
    } 

    return [NSString stringWithCString:&aXMLElement->text[0] encoding:NSUTF8StringEncoding]; 
} 

通过使用第二个它为您做检查。据我所知,像这样的大多数电话都有+错误版本。

请注意,它需要**错误。