从 POST 方法解析/显示 XML [重复]
Posted
技术标签:
【中文标题】从 POST 方法解析/显示 XML [重复]【英文标题】:Parse/Display XML from a POST Method [duplicate] 【发布时间】:2013-12-11 05:22:55 【问题描述】:好的,所以在我的 ios 应用程序上,我有一个返回 xml
的 HTTP Post
方法,就像这样
<?xml version="1.0" encoding="utf-8"?>
<geocode>
<suburb>Sydney</suburb>
<state>NSW</state>
</geocode>
它通过获取纬度和经度的HTTP POST
方法返回
我要做的是在按钮或标签上显示此XML
。
但不是像 Bold Sydney 和 NSW 那样的代码。
我将代码保存为
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *strdata=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
所以我通常调用strdata
来获取XML
,但它以代码形式显示它,这就是问题所在。我看过使用 NSXMLParser 但我不知道如何使用它。
【问题讨论】:
你想做什么?当你使用 NSXMLParser 时发生了什么? 我不知道把它放在哪里,我不知道它是否需要另一个框架或它需要什么。 看这个例子iosbala.blogspot.in/2013/04/… 【参考方案1】:声明如下属性:
@porperty (nonatomic, strong) NSXMLParser *parser;
并实现如下方法:
- (void)parseXML
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
_parser = [[NSXMLParser alloc] initWithData:urlData];
[_parser setDelegate:self];
[_parser parse];
并实现以下NSXMLParser
委托方法:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
检查以下链接:
-
RSS Reader
NSXMLParser Class Reference
【讨论】:
我打算将 Delegate 方法放在哪里,在AppDelegate.m/.h
文件中?
@user3089637:在您添加解析器的同一个文件中没有。请查看教程以获取更多信息。
i.imgur.com/r6UIJIj.png 我完成了教程,但我只应该有一个跨越州和郊区的结果,然后在标签/按钮上显示格式化/解析的结果。我也有一个错误,就是那张照片。
@user3089637:你检查过我的答案吗?我使用了_parser,而不是解析器,也没有使用@synthesize parser;
合成它要求将所有_parser
更改为parser
。一切都很好。以上是关于从 POST 方法解析/显示 XML [重复]的主要内容,如果未能解决你的问题,请参考以下文章
解析Servlet中传入的多部分/表单数据参数的便捷方法[重复]