【发布时间】:2014-10-17 09:25:25
【问题描述】:
我正在使用 xslt 框架将 xml 转换为 iOS 项目的 html。 我将编码的 xml 发送到 xslt 框架。但是它给出的输出没有编码。所以当我尝试解析 html 时,我得到了解析器错误。
NSString *xml = @"<div>a<b</div>" // not exact this but its similar in encoding
NSData *xmlMem = [xml dataUsingEncoding:NSUTF8StringEncoding];
NSString* styleSheetPath = [[NSBundle mainBundle] pathForResource:fileName ofType:fileExtension];
xmlDocPtr doc, res;
xsltStylesheetPtr sty;
xmlSubstituteEntitiesDefault(1);
xmlLoadExtDtdDefaultValue = 1;
sty = xsltParseStylesheetFile((const xmlChar *)[styleSheetPath cStringUsingEncoding: NSUTF8StringEncoding]);
doc = xmlParseMemory([xmlMem bytes], [xmlMem length]);
res = xsltApplyStylesheet(sty, doc, nil);
xmlChar* xmlResultBuffer = nil;
xsltSaveResultToString(&xmlResultBuffer, &length, res, sty);
NSString* resultHTML = [NSString stringWithCString: (char *)xmlResultBuffer encoding:NSUTF8StringEncoding];
NSLog(@"Result: %@", resultHTML);
结果:<div>a<b<div>
结果不是编码的 html。谁能帮我解决这个问题?
【问题讨论】:
-
如果
NSString *xml = @"<div>a&amp;lt;b</div>"会发生什么? -
@MathiasMüller - 是的,我已将 & 更改为 &及其工作..
-
我已将此作为答案添加,然后附上解释。
标签: ios objective-c cocoa-touch xslt libxslt