2012-03-15 11 views
1

我在解析iPhone應用程序中的一些xml數據時遇到了一個特殊問題。當我將XML數據傳遞給NSXMLParser類進行解析時,它會忽略實際數據開始出現的部分。它顯示了數據出現之前的所有元素名稱,例如Soapenvolopebody等。後來,我觀察到標籤出現在'& lt';和'& gt';引起問題的符號。iPhone解析XML數據,標籤不出現

我希望這需要一個替代策略,然後將其解析到NSXMLParser。我的問題是iPhone以這種方式採用XML的原因?我從一個PHP文件動態地生成XML,並且在加載到IE瀏覽器時以XML的形式出現。希望你能幫助我解決問題。

更新

我仍然在尋找一個解決方案。我認爲將NSString轉換爲NSData並將其傳遞給NSXMLParser的想法可以完成解析。

NSString * str = @「teststring」;
NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding];
我發現這在以下文章中提到,我將嘗試。 How do I convert an NSString value to NSData?

更新1

我得到的NSData格式的數據。轉換爲NSString和應用替換代碼,以取代& lt和& gt東西。之後,我再次將替換的NSString轉換爲NSData格式。但是仍然不能使用NSXMLParser正確解析xml。

+0

你可以給我的XML文件中的數據,我將要給你一個XML解析工作代碼ü[R XML – parag 2012-03-16 05:50:18

回答

2

請使用此字符串函數替換未使用的字符。請參考下面的代碼。

NSString *theXML = [[[NSString alloc] initWithBytes: [webdata mutableBytes] length:[webdata length] encoding:NSUTF8StringEncoding]autorelease]; 

theXML = [theXML stringByReplacingOccurrencesOfString:@"&lt;" withString:@"<"]; 
theXML = [theXML stringByReplacingOccurrencesOfString:@"&gt;" withString:@">"]; 
theXML = [theXML stringByReplacingOccurrencesOfString:@"&amp;" withString:@"&"]; 

NSLog(@"%@",theXML); 

感謝