iPhone解析XML数据,标签未出现

Posted

技术标签:

【中文标题】iPhone解析XML数据,标签未出现【英文标题】:iPhone parsing of XML data, Tags not appearing 【发布时间】:2012-03-31 16:43:18 【问题描述】:

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

我希望在将其解析为 NSXMLParser 之前需要一个替换策略。我的问题是为什么 iPhone 以这种方式采用 XML?我从 php 文件动态生成 xml,并在加载到 IE 浏览器时以 XML 的形式出现。希望您能帮我解决问题。

更新

我仍在寻找解决方案。我认为将 NSString 转换为 NSData 然后将其传递给 NSXMLParser 的想法可以完成解析。

NSString* str= @"teststring"; NSData* 数据=[str dataUsingEncoding:NSUTF8StringEncoding]; 我在下面的帖子中发现了这一点,我将尝试一下。 How do I convert an NSString value to NSData?

更新 1

我得到 NSData 格式的数据。转换为 NSString 并应用替换代码来消除 &lt 和 &gt 的东西。之后,我再次将替换的 NSString 转换为 NSData 格式。但是使用 NSXMLParser 仍然无法正确解析 xml。

【问题讨论】:

你能给我xml文件数据吗,我会给你一个xml解析工作代码为你的xml 【参考方案1】:

请使用此字符串函数替换不常见的字符。请参考以下代码。

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

谢谢

【讨论】:

以上是关于iPhone解析XML数据,标签未出现的主要内容,如果未能解决你的问题,请参考以下文章

xml 使用 sax 解析器从子标签解析数据

XML 解析

如何在 iphone 中解析多个 .xml 文件?

使用 Sax Parser、Java 处理 XML 中的空标签

如何修复解析 XML:android 中的未绑定前缀

XML解析失败:格式不符