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它太快了;)
答
因为其他人也面临同样的问题。 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];
}
通过使用第二个它为您做检查。据我所知,像这样的大多数电话都有+错误版本。
请注意,它需要**错误。
谢谢你是忍者 – Armand 2012-03-06 12:56:50