如何从雅虎天气预报XML文档中获取图片网址?
我从yahoo weather获取天气信息,我可以从文档解析温度信息,但有问题请我不能说我使用NSXMLParser
从<escription>
元素获取图像的URL即如何从雅虎天气预报XML文档中获取图片网址?
<description>
<![CDATA[
<img src="http://l.yimg.com/a/i/us/we/52/28.gif"/><br /> <b>Current Conditions:</b><br /> Mostly Cloudy, 61 F<BR /> <BR /><b>Forecast:</b><BR /> Thu - Showers. High: 66 Low: 48<br /> Fri - AM Light Rain. High: 52 Low: 37<br /> Sat - Partly Cloudy. High: 61 Low: 47<br /> Sun - AM Clouds/PM Sun. High
]]>
<![CDATA[
: 66 Low: 48<br /> Mon - PM Showers. High: 62 Low: 50<br /> <br /> <a href="http://us.rd.yahoo.com/dailynews/rss/weather/Hakuba_Station__JP/*http://weather.yahoo.com/forecast/JAXX0105_f.html">Full Forecast at Yahoo! Weather</a><BR/><BR/> (provided by <a href="http://www.weather.com" >The Weather Channel</a>)<br/>
]]>
</description>
用于解析MXL文件。
基于@ haras.prasad回答我解决了使用NSXMLParser
委托和NSRegularExpression
- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock {
NSString *cdataString = [[NSString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding];
// Do extraction of image src here
NSError* error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(<img\\s[\\s\\S]*?src\\s*?=\\s*?['\"](.*?)['\"][\\s\\S]*?>)+?"
options:NSRegularExpressionCaseInsensitive
error:&error];
NSString *imageUrlString = nil;
NSTextCheckingResult *match = [regex firstMatchInString:cdataString options:0 range:NSMakeRange(0, [cdataString length])];
if (match)
{
imageUrlString = [cdataString substringWithRange:[match rangeAtIndex:2]];
self.iconUrl = imageUrlString;
}
}
你可以得到CDATA字符串:
NSString *prefix = @"<![CDATA[";
if ([xmlString hasPrefix:prefix]) {
NSString *cdataString = [_factString substringWithRange:NSMakeRange((prefix.length+1), xmlString.length - 3 -(prefix.length+1))];
// Do stuff with CDATA here...
NSLog(@"%@", cdataString);
}
在你NSXMLParserDelegate,你可以调用委托方法foundCDATA
和处理数据在那里。
- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock {
NSString *cdataString = [[NSString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding];
// Do extraction of image src here
}
您可以检查委托方法这里的文档:NSXMLParserDelegate
这个问题我需要解析HTML获取IMG SRC?如果可以,请给我一些参考资料,说明如何做到这一点? – Blios 2014-11-06 10:30:01
你还需要一个解析器方法吗? – 2014-11-07 01:28:47
我认为这将工作.. :) – 2014-11-07 02:28:46
烨我得到它的工作..感谢哥们。 – Blios 2014-11-12 09:13:54