Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何在iOS中分离xml标记内的值_Html_Ios_Objective C_Xml_Xml Parsing - Fatal编程技术网

Html 如何在iOS中分离xml标记内的值

Html 如何在iOS中分离xml标记内的值,html,ios,objective-c,xml,xml-parsing,Html,Ios,Objective C,Xml,Xml Parsing,调用API时,我得到以下格式的响应: 成功 a href='10〕http://52.7.130.201/oapi/clickAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'img src='1〕http://52.7.130.201/oapi/getAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'//a 首先,您需要将其转换为正确的ht

调用API时,我得到以下格式的响应:


成功
a href='10〕http://52.7.130.201/oapi/clickAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'img src='1〕http://52.7.130.201/oapi/getAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'//a

首先,您需要将其转换为正确的html格式,如下所示:

NSString *html = @"<a href='http://52.7.130.201/oapi/clickAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'><img src='http://52.7.130.201/oapi/getAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'/></a>";

NSData *stringData = [html dataUsingEncoding:NSUTF8StringEncoding];

NSDictionary *options = @{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType};
NSAttributedString *decodedString;
decodedString = [[NSAttributedString alloc] initWithData:stringData
                                                 options:options
                                      documentAttributes:NULL
                                                   error:NULL];

NSString *finalHtml = [decodedString string]; //it will return <a href='http://52.7.130.201/oapi/clickAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'><img src='http://52.7.130.201/oapi/getAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'/></a>
NSString*html=@“a href=”http://52.7.130.201/oapi/clickAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'img src='1〕http://52.7.130.201/oapi/getAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'/a”;
NSData*stringData=[html数据使用编码:NSUTF8StringEncoding];
NSDictionary*选项=@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType};
NSAttributedString*解码字符串;
decodedString=[[NSAttributedString alloc]initWithData:stringData
选项:选项
文档属性:NULL
错误:NULL];
NSString*finalHtml=[decodedString]//它会回来的
然后从html解析。这可能有助于解决我的问题 -(无效)checkForLINK

{

NSError*error=NULL;
NSString*htmlString=@“html=”;
NSDataDetector*detector=[NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink错误:&错误];
[检测器枚举匹配安装:htmlString
选项:0
范围:NSMakeRange(0,htmlString.length)
usingBlock:^(NSTextCheckingResult*结果,NSMatchingFlags标志,布尔*停止)
{
NSURL*urlStr=result.URL;
NSLog(@“URL=%@”,urlStr);
}];

}

:谢谢..这是有效的。但是它适用于上述格式的所有响应吗?:您最终的TML字符串没有返回任何值。它是空的。否,我已检查过。如果您有任何错误,请打印html并检查。我还为finalHtml添加了注释行:实际上,通过使用代码,“NSString*html=[xml.documentRoot getNamedChild:@“ads”].text;”我已经得到了与“finalHtml”中相同的值。我需要的是分离这些值。
NSString *html = @"&lt;a href='http://52.7.130.201/oapi/clickAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'&gt;&lt;img src='http://52.7.130.201/oapi/getAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'/&gt;&lt;/a&gt;";

NSData *stringData = [html dataUsingEncoding:NSUTF8StringEncoding];

NSDictionary *options = @{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType};
NSAttributedString *decodedString;
decodedString = [[NSAttributedString alloc] initWithData:stringData
                                                 options:options
                                      documentAttributes:NULL
                                                   error:NULL];

NSString *finalHtml = [decodedString string]; //it will return <a href='http://52.7.130.201/oapi/clickAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'><img src='http://52.7.130.201/oapi/getAd;jsessionid=679E3CFF39C3D7792E7F6915318E3156.soma-i-915abc39'/></a>
NSError *error= NULL;

NSString* htmlString = @" html=<a href='http://52.7.43.135/oapi/clickAd;jsessionid=4373A2D1CC3FAE62BDF57033C385ADC7.soma-i-65e6329b'><img src='http://52.7.43.135/oapi/getAd;jsessionid=4373A2D1CC3FAE62BDF57033C385ADC7.soma-i-65e6329b'/></a>";



NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:&error];



[detector enumerateMatchesInString:htmlString

                           options:0

                             range:NSMakeRange(0, htmlString.length)

                        usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop)

 {

     NSURL * urlStr = result.URL;



     NSLog(@"URL = %@",urlStr);

 }];