目标C HTML转义/取消转义 [英] Objective C HTML escape/unescape
本文介绍了目标C HTML转义/取消转义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
想知道是否有一个简单的方法来做一个简单的HTML转义/ unescape在Objective C.我想要的是这样的伪装代码:
NSString * string = @& lt; span& gt; Foo& lt; / span& gt;;
[string stringByUnescapingHTML];
哪些返回
< span> Foo< / span>希望取消转义所有其他HTML实体,甚至是Ӓ等ASCII码。 >
在Cocoa Touch / UIKit中有没有方法来执行此操作?
解决方案此链接包含以下解决方案。 Cocoa CF有CFXMLCreateStringByUnescapingEntities函数,但在iPhone上不可用。
@interface MREntitiesConverter:NSObject< NSXMLParserDelegate> {
NSMutableString * resultString;
}
@property(nonatomic,retain)NSMutableString * resultString;
- (NSString *)convertEntitiesInString:(NSString *)s;
@end
@implementation MREntitiesConverter
@synthesize resultString;
- (id)init
{
if([super init]){
resultString = [[NSMutableString alloc] init];
}
return self;
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)s {
[self.resultString appendString:s];
}
- (NSString *)convertEntitiesInString:(NSString *)s {
if(!s){
NSLog(@ERROR:parameter string is nil );
}
NSString * xmlStr = [NSString stringWithFormat:@< d>%@< / d>,s]
NSData * data = [xmlStr dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSXMLParser * xmlParse = [[[NSXMLParser alloc] initWithData:data] autorelease];
[xmlParse setDelegate:self];
[xmlParse parse];
return [NSString stringWithFormat:@%@,resultString];
}
- (void)dealloc {
[resultString release];
[super dealloc]
}
@end
Wondering if there is an easy way to do a simple HTML escape/unescape in Objective C. What I want is something like this psuedo code:
NSString *string = @"<span>Foo</span>";
[string stringByUnescapingHTML];
Which returns
<span>Foo</span>
Hopefully unescaping all other HTML entities as well and even ASCII codes like Ӓ and the like.
Is there any methods in Cocoa Touch/UIKit to do this?
解决方案 This link contains the solution below. Cocoa CF has the CFXMLCreateStringByUnescapingEntities function but that's not available on the iPhone.
@interface MREntitiesConverter : NSObject <NSXMLParserDelegate>{
NSMutableString* resultString;
}
@property (nonatomic, retain) NSMutableString* resultString;
- (NSString*)convertEntitiesInString:(NSString*)s;
@end
@implementation MREntitiesConverter
@synthesize resultString;
- (id)init
{
if([super init]) {
resultString = [[NSMutableString alloc] init];
}
return self;
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)s {
[self.resultString appendString:s];
}
- (NSString*)convertEntitiesInString:(NSString*)s {
if (!s) {
NSLog(@"ERROR : Parameter string is nil");
}
NSString* xmlStr = [NSString stringWithFormat:@"<d>%@</d>", s];
NSData *data = [xmlStr dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSXMLParser* xmlParse = [[[NSXMLParser alloc] initWithData:data] autorelease];
[xmlParse setDelegate:self];
[xmlParse parse];
return [NSString stringWithFormat:@"%@",resultString];
}
- (void)dealloc {
[resultString release];
[super dealloc];
}
@end
这篇关于目标C HTML转义/取消转义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文