要解析的 XML 数据如下,我把它转成字符串如下:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="
http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<soap:Body>
<getWeatherbyCityNameResponse
xmlns="
http://WebXml.com.cn/">
<getWeatherbyCityNameResult>
<string>56492</string>
<string>2015-11-21 22:18:14</string>
<string>17℃/21℃</string>
<string>11 月 21 日 多云转小雨</string>
</getWeatherbyCityNameResult>
</getWeatherbyCityNameResponse>
</soap:Body>
</soap:Envelope>
那么问题来了,无论我用 GDataXML 解析还是 NSXMLParser 都解析不出<string>XXXXX</string>中间那个 XXXXX 那个字符串, NSXMLParser 解析实现如下:
//xmlData 是我请求的得到的数据
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:xmlData];
parser.delegate = self;
[parser parse];
在代理方法:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
NSLog(@"%@-----%@-----%@----%@", elementName, namespaceURI, qName, attributeDict);
}
打印结构如下:
2015-11-21 22:25:05.713 ChangHang[611:23462] string-----(null)-----(null)----{
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/237947
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.