Dev avec WebKit Framework

skercrow

Membre confirmé
14 Février 2011
12
0
paris
Bonsoir,
Je suis débutant sur le développement Mac ;)
Et je voudrais développer une petite application en ligne de commande capable de modifier un fichier HTML.
Cette petite application prendra en paramètres les options suivantes:
-source : nom du fichier source
-destination : nom du fichier résultant
-print : affiche le fichier sur la sortie standard
-XPath : chemin HTML où écrire
-insertBefore : insère avant
-insertAfter : insère après
-firstChild : insère avant le firstChild
-append : ajoute à la fin du noeud
-text : texte à écrire dans le fichier de destination
-html : code HTML à écrire dans le fichier de destination

Pour réaliser cette petite application, je souhaite utiliser le WebKit.Framework afin de savoir lire le fichier HTML.
J'ai un iMac v.10.6.6 x86_64
Je développe avec Xcode v3.2.3. J'ai trouvé comment ajouter le WebKit.Framework dans le projet.

Par contre, et c'est ma question; le code suivant déclenche une erreur ERR_BAD_ACCESS et je ne comprends pas pourquoi :heu:.
Bloc de code:
NSString *urlString = [[NSString alloc] initWithString:@"file:///Users/UserName/Documents/Sites%20Web/MySite"];
NSURL *url = [NSURL URLWithString:urlString];
DOMHTMLDocument *html = [DOMHTMLDocument alloc];
DOMDocumentFragment *doc = [html createDocumentFragmentWithMarkupString:@"<html></html>" baseURL:url];
NSString *s = [[doc firstChild] nodeName];

  1. Pourquoi ?
  2. Est-ce que WebKit.Framework ne fonctionne pas en x64 ? Faut-il que je passe en 32-bits ?

Merci pour vos réponses

-------(----------------)-------
Le hasard, c'est l'ignorance
 
DOMHTMLDocument est un protocole donc tu ne peux pas instancier un objet de cette classe, il faut instancier un objet d'une classe utilisant ce protocole.
 
DOMHTMLDocument est un protocole donc tu ne peux pas instancier un objet de cette classe, il faut instancier un objet d'une classe utilisant ce protocole.

Ok, merci.
Est-ce que vous connaissez une classe qui utilise ce protocole ?
Merci beaucoup

---------- Nouveau message ajouté à 23h24 ---------- Le message précédent a été envoyé à 23h06 ----------

DOMHTMLDocument est une classe, pas un protocole, d'après la documentation.
 
Bonsoir,
J'ai cru voir Class References et dans cette liste, il y a bien DOMHTMLDocument.
Sinon, ok, il y a informal protocol entre parenthèses dans la description de la classe.

Par contre, je n'ai plus besoin de WebKit.Framework.
Je vais utiliser Foundation.Framework avec la classe NSXmlDocument.
Et j'ai testé le chargement du fichier HTML, tout est ok.

Ci-joint le code exemple:
Bloc de code:
NSInteger options = NSXMLNodePreserveCharacterReferences | NSXMLNodePreserveWhitespace;
NSError *pError = nil;
NSString *urlString = [[NSString alloc] initWithString:@"file:///Users/U/Documents/Sites%20Web/index.html"];
NSURL *url = [NSURL URLWithString:urlString];
NSXMLDocument *pDocument = [[NSXMLDocument alloc] initWithContentsOfURL:url options:options error:&pError];
	
if ((pDocument == nil) && ([[pError domain] isEqualToString:NSURLErrorDomain]) && ([url isFileURL])) {
       NSLog(@"erreur");
}

Merci de votre aide précieuse.