我有以下的輔助功能通過XSLT轉換XML:收集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的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