Ich versuche, eine XPath-Abfrage mit TouchXML zu machen, aber wenn die Abfrage fehlschlägt, stürzt das Programm sofort ab.Versuchen Sie, von einem Fehler mit TouchXML wiederherzustellen
Gibt es eine Möglichkeit, dies zu verhindern und die Ausführung des Programms fortzusetzen.
Ich weiß, dass TouchXML auf libxml2 basiert und dass lib eine Option namens XML_PARSE_RECOVER
, aber ich weiß nicht, wie man es mit TouchXML verwenden.
Quellcode
- (id)initWithData:(NSData *)d
{
if (![super init])
return nil;
NSError *error;
translation = [[WRTranslation alloc] init];
parser = [[CXMLDocument alloc] initWithData:d options:0 error:&error];
if (error)
NSLog(@"initWithData error = true");
return self;
}
- (void)dealloc
{
NSLog(@"dealloc de WRTouchParser = %@", self);
[translation release];
[parser release];
[super dealloc];
}
- (BOOL)queryData:(NSString *)s
{
// Nécessaire pour faire une requête. Exemple : //x:div[@class="se"]
NSDictionary *mappings = [NSDictionary dictionaryWithObject:@"http://www.w3.org/1999/xhtml" forKey:@"x"];
NSArray *res = [parser nodesForXPath:s namespaceMappings:mappings error:nil];
queryResult = [res description];
return YES;
}
Ich versuche, eine falsche XPath-Abfrage, so zu machen: // x: div [@cla
Und ich bekomme:
XPath error : Invalid predicate
Können Sie den Code, den Sie verwenden, und th Die Details des Absturzes? Ich habe TouchXML nicht verwendet, aber es klingt, als würde etwas nicht stimmen, wenn es abstürzt. –
Es ist nur, wenn ich eine falsche XPath-Abfrage ausführen: wie '// x: div [@ cla ' –