我想解析如下的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
然而我只是ge t「>」作爲消息,我應該將文本嵌入到html標記中。我讀了解其他解析技術,知道NSXMParser的缺點,但我只想要文本。我會自己轉換並分割html。請幫助我。
N:B: - 我正在用foundCharacters方法中的html標籤獲取所需的文本,但它們進入循環。
對不起,好像它不是HTML – Injectios
@Injectios請看第一項的消息節點。你會看到html標籤。 – Saty
那麼我應該怎麼做才能解析這些標籤。你有什麼主意嗎? – Saty