iPhone解析XML数据,标签没有出现

时间:2012-03-15 07:04:04

标签: iphone xml parsing

我在解析iPhone应用程序中的一些xml数据时遇到了一个特殊问题。当我将xml数据传递给NSXMLParser类进行解析时,它会忽略实际数据开始出现的部分。它显示了数据出现之前的所有元素名称,例如Soapenvolopebody等。后来,我观察到标签出现在'& lt';和'& gt';导致问题的符号。

我希望在将其解析为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。

1 个答案:

答案 0 :(得分:2)

请使用此字符串函数替换unwonted字符。请参考以下代码。

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);

由于