J'essaie de récupérer les ID public et système d'une DTD dans un document XML via NSXMLParser
. Alors que NSXMLParser
en principal offre publicID
et systemID
sélecteurs, ils ne semblent pas fonctionner pour moi. La balise DOCTYPE ressemble à ceci:Comment obtenir les identifiants publics et système d'une DTD avec NSXMLParser
<!DOCTYPE Article PUBLIC "-//SoftQuad Software//DTD Journalist v2.0 20000501//EN" "file:///C:/Program%20Files/Corel/XMetaL%204/Author/Rules/journalist.dtd">
Voici mon code (le fichier a été ouvert via NSFileHandle
« s readDataToEndOfFile
:
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
[parser setDelegate:self];
BOOL parseSuccessful = [parser parse];
Dans parserDidStartDocument:
de délégué j'essaie d'accéder aux ID:
NSLog(@"%@ : %@", [parser publicID], [parser systemID]);
Mais je ne vois que
(null) : (null)
De la documentation:
Vous pouvez appeler cette méthode une fois une opération d'analyse syntaxique a commencé ou après une erreur se produit.
donc je pense que cela devrait fonctionner déjà parserDidStartDocument:
mais j'ai essayé d'appeler ces sélecteurs dans différentes méthodes de délégués (comme parser:didStartElement:namespaceURI:qualifiedName:attributes:
mais sans succès.
Toutes les idées que je fais mal?