2009-12-04 59 views
1

解析我有一個看起來像這樣的XML文件:XML與多餘的空格

<?xml version="1.0"?> 
<categories> 
    <category id="1"> 
     <category_name>Banks</category_name> 
    </category> 
    <category id="4"> 
     <category_name>Restaurants</category_name> 
    </category> 
</categories> 

的[XMLPARSER解析]方法沒有錯誤返回TRUE。但是,當我打印出每個元素,我得到以下結果:

Processing characters: 

    Restaurants 

注意「餐廳」的空行和輕微縮進。我foundCharacters方法打印出上述。

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { 

if(!currentElementValue) 
    currentElementValue = [[NSMutableString alloc] initWithString:string]; 
else 
    [currentElementValue appendString:string]; 

NSLog(@"Processing characters: %@", currentElementValue); 
} 

這會導致我的UITableViewCell中的文本的縮進 - 爲什麼會這樣呢?

imageView屬性沒有被設置。

感謝 喬

回答

3

我用下面來解決這個問題

NSString *trimmedString = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 

它的工作

0

是否有ignoreWhiteSpace屬性,你可以使用嗎?

1

我認爲發生的事情是,無論發現的字符方法寫入的是不是在找到新元素的開始時被清除,所以從縮進標籤的空白仍然懸而未決。如果只在找到元素的末尾時才清除它,則會得到類似於所描述的結果。

+0

更具體地說,程序清除在'category'元素的開始字符串(這是爲什麼「銀行」不會在示例輸出中顯示),但不是'category_name'元素的開始。 – 2009-12-05 06:23:23

+0

是的,每當你遇到一個新元素的開始,你應該清除字符串。 – 2009-12-05 19:35:05