Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - (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;
- }
- - (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 {
- // Pipe for stderr
- NSPipe *pipe = [NSPipe pipe];
- // Duplicate of stderr (will use later)
- int cntl = fcntl(STDERR_FILENO,F_DUPFD);
- // Redirect stderr through our pipe
- dup2([[pipe fileHandleForWriting] fileDescriptor], STDERR_FILENO);
- transformedXmlDoc = [xmlDoc objectByApplyingXSLTString:xslt
- arguments:nil
- error:&xmlDocErr];
- // Get the data
- NSData *dat = [[pipe fileHandleForReading] availableData];
- // Redirect stderr through our duplicate, to restore default output behavior
- dup2(cntl, STDERR_FILENO);
- // Did anything get logged?
- if ([dat length]>0) {
- NSLog(@"Error: %@", [[NSString alloc] initWithData:dat encoding:NSASCIIStringEncoding]);
- }
- if (xmlDocErr) {
- NSLog(@"Error: %@", [xmlDocErr localizedDescription]);
- }
- }
- return transformedXmlDoc;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement