2012-03-06 4 views
0

インスタンスTBXml空のタグテキスト

のために、私は私のプロジェクトでTBXMLを使用していると私は

タグにテキストが含まれていないかどうかを確認する方法はあり

を思っていた
<Description/> 

<Description> This is text </Description> 

デバッガを使用し、po [TBXML textForElement:groupdescription]と入力すると、読み込まれたタグがテキストなしの場合は<object returned empty description>が返され、他の場合は完全に動作します。だから私の質問は、どうすればそれをチェックするのですか? "GDBに - あなたが得る「あなたはTBXMLソースを見ればあなたは" POの@を行います場合は、そう

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

を見つけるでしょう

おかげ

答えて

1

は、オブジェクトは空の記述を返さ"

文字の長さを確認する必要があります... 実際には、TBXMLは軽いxmlパーサでxmlの検証などは含まれていません。これはwhですそれはとても速いです;)

+0

あなたは忍者です – Armand

0

他の人は同じ問題に直面しています。 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]; 
} 

秒を使用することで、あなたのチェックが行われます。私の知る限り、このような呼び出しのほとんどは+エラーバージョンを持っています。

**エラーが必要ですのでご注意ください。

関連する問題