У меня есть следующая вспомогательная функция для преобразования XML с помощью XSLT:Сбор NSXMLDocument предупреждения выхода
- (NSXMLDocument *)transform:(NSString *)xml :(NSString *)xslt
{
NSError *xmlDocErr = nil;
NSXMLDocument *transformedXmlDoc = nil;
NSXMLDocument *xmlDoc = [[NSXMLDocument alloc]
initWithXMLString:xml
options:NSXMLDocumentValidate
error:&xmlDocErr];
if (xmlDocErr) {
NSLog(@"Error: %@", [xmlDocErr localizedDescription]);
}
else {
transformedXmlDoc = [xmlDoc objectByApplyingXSLTString:xslt
arguments:nil
error:&xmlDocErr];
if (xmlDocErr) {
NSLog(@"Error: %@", [xmlDocErr localizedDescription]);
}
}
return transformedXmlDoc;
}
Он работает, как ожидался, но есть небольшой бзик я мог бы использовать помощь с.
Когда я пытаюсь использовать функцию XSLT, которая неизвестно к NSXMLDocument (скажем, EXSLT «s node-set()
), я получаю выход в Xcode, аналогичный приведенному ниже - первая линия, в частности, представляет интерес:
xmlXPathCompOpEval: function node-set not found
XPath error: Unregistered function runtime
error: element for-each
Failed to evaluate the 'select' expression.
Это круто; это именно то, чего я ожидал бы.
Интересная вещь для меня, однако, заключается в том, что вывод не содержит "Error: "
в любом месте (что должно быть, если этот вывод был захвачен моими вызовами [xmlDocErr localizedDescription]
).
Итак, вот вопрос: как я могу захватить вышеупомянутый вывод (чтобы я мог использовать его для отображения релевантных сообщений для моего пользователя)?
Большое спасибо!
Фантастический, @SimonM - спасибо за это. Я буду играть и посмотреть, что я придумал. – ABach