Я пытаюсь разобрать xml, который выглядит следующим образом.NSXMLParser не анализирует теги html
<xml>
<item>
<title>
21/2/2014 13:18:22
</title>
<time>
2014-02-21 02:49:03
</time>
<message>
<strong>
abcd</strong><br /><br /><em>abcd</em><br /><br /><u>abcd</u><br /><br /><br />
</message>
</item>
<item>
<title>
21/2/2014 12:9:40
</title>
<time>
2014-02-21 01:57:28
</time>
<message>
100
</message>
</item>
</xml>
Я разбор, используя обычную процедуру разбора
Моего parser.h
#import "XMLData.h"
@interface XMLParser : NSObject<NSXMLParserDelegate>
{
NSMutableString *currentNodeContent;
NSMutableArray *datas;
NSXMLParser *parser;
XMLData *recentEnquiry;
}
@property (readonly, retain) NSMutableArray *datas;
-(id) loadXMLByURL:(NSString *)urlString;
моего Parser.m
#import "XMLParser.h"
@implementation XMLParser
@synthesize datas;
-(id) loadXMLByURL:(NSString *)urlString
{
datas = [[NSMutableArray alloc] init];
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
NSLog(@"Data is %@",data);
parser = [[NSXMLParser alloc] initWithData:data];
parser.delegate = self;
[parser parse];
return self;
}
- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementname isEqualToString:@"item"])
{
recentEnquiry = [XMLData alloc];
}
}
- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementname isEqualToString:@"title"])
{
recentEnquiry.title = currentNodeContent;
}
if ([elementname isEqualToString:@"time"])
{
recentEnquiry.time = currentNodeContent;
}
if ([elementname isEqualToString:@"message"])
{
recentEnquiry.message = currentNodeContent;
[datas addObject:recentEnquiry];
}
}
- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
@end
Однако для первого элемента Я просто t ">" в качестве сообщения, где я должен получить текст, встроенный в теги html. Я читал о другой технике синтаксического анализа, зная, что недостаток NSXMParser, но я просто хочу текст. Я конвертирую и разделяю html самостоятельно. Пожалуйста, помогите мне.
N: B: - Я получаю желаемые тексты с тегами html в методе foundCharacters, но они входят в цикл.
извините, похоже, что это не HTML – Injectios
@ Инъекции, пожалуйста, посмотрите на узел сообщения первого элемента. Вы увидите теги html. – Saty
Тогда что мне делать, чтобы разобрать эти теги. Есть ли у вас какие-либо идеи? – Saty