Парсинг XML в какао

Это может быть изменено в Вашем my.ini файл (в Windows, расположенном в сервере \Program Files\MySQL\MySQL) под разделом сервера, например:

[mysqld]

max_allowed_packet = 10M
19
задан Quinn Taylor 8 July 2009 в 17:30
поделиться

1 ответ

Вот как это работает:

Есть класс NSXMLParser. Он используется для анализа файлов XML. Однако NSXMLParser глуп. Все, что он умеет делать, - это разбирать XML, но он не знает, что он должен делать с найденной информацией.

Введите делегата. Делегат похож на няню. Поскольку XMLParser не знает, что делать с найденной информацией, он идет и спрашивает своего делегата обо всем: «Эй! Я начал синтаксический анализ документа! Я должен что-то делать?» «Эй! Я нашел CDATA! Что мне с ним делать!» «Эй! Я нашел еще одну метку!» «Эй! Я нашел закрывающий тег!» И так далее. Все эти «Эй!» операторы - это методы делегата, или, другими словами, это необязательные методы, которые объект делегата может выбрать для реализации. Обычно (но не всегда) объект, который создает NSXMLParser, также является делегатом, но это не обязательно.

Итак, у вас может быть что-то вроде этого:

NSXMLParser * parser = [[NSXMLParser alloc] initWithContentsOfURL:someURLToAnXMLFile];
[parser setDelegate:self];
[parser parse];
[parser release];

Затем в том же объекте (self ), у вас могут быть некоторые из этих методов:

- (void)parserDidStartDocument:(NSXMLParser *)parser {
  //the parser started this document. what are you going to do?
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
  //the parser found an XML tag and is giving you some information about it
  //what are you going to do?
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
  //the parser found some characters inbetween an opening and closing tag
  //what are you going to do?
}

- (void)parserDidEndDocument:(NSXMLParser *)parser {
  //the parser finished. what are you going to do?
}

В документации перечислено множество этих методов. Просто перейдите к ссылке на класс NSXMLParser, и все они перечислены в разделе «Методы делегирования». Как только вы освоитесь, NSXMLParser станет довольно простым в использовании. Это SAX Parser , что означает, что это анализатор, управляемый событиями. Он находит вещи и рассказывает вам об этом.

они являются необязательными методами, которые объект-делегат может выбрать для реализации. Обычно (но не всегда) объект, который создает NSXMLParser, также является делегатом, но это не обязательно.

Итак, у вас может быть что-то вроде этого:

NSXMLParser * parser = [[NSXMLParser alloc] initWithContentsOfURL:someURLToAnXMLFile];
[parser setDelegate:self];
[parser parse];
[parser release];

Затем в том же объекте (self ), у вас могут быть некоторые из этих методов:

- (void)parserDidStartDocument:(NSXMLParser *)parser {
  //the parser started this document. what are you going to do?
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
  //the parser found an XML tag and is giving you some information about it
  //what are you going to do?
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
  //the parser found some characters inbetween an opening and closing tag
  //what are you going to do?
}

- (void)parserDidEndDocument:(NSXMLParser *)parser {
  //the parser finished. what are you going to do?
}

В документации перечислено множество этих методов. Просто перейдите к ссылке на класс NSXMLParser, и все они перечислены в разделе «Методы делегирования». Как только вы освоитесь, NSXMLParser станет довольно простым в использовании. Это SAX Parser , что означает, что это анализатор, управляемый событиями. Он находит вещи и рассказывает вам об этом.

они являются необязательными методами, которые объект-делегат может выбрать для реализации. Обычно (но не всегда) объект, который создает NSXMLParser, также является делегатом, но это не обязательно.

Итак, у вас может быть что-то вроде этого:

NSXMLParser * parser = [[NSXMLParser alloc] initWithContentsOfURL:someURLToAnXMLFile];
[parser setDelegate:self];
[parser parse];
[parser release];

Затем в том же объекте (self ), у вас могут быть некоторые из этих методов:

- (void)parserDidStartDocument:(NSXMLParser *)parser {
  //the parser started this document. what are you going to do?
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
  //the parser found an XML tag and is giving you some information about it
  //what are you going to do?
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
  //the parser found some characters inbetween an opening and closing tag
  //what are you going to do?
}

- (void)parserDidEndDocument:(NSXMLParser *)parser {
  //the parser finished. what are you going to do?
}

В документации перечислено множество этих методов. Просто перейдите к ссылке на класс NSXMLParser, и все они перечислены в разделе «Методы делегирования». Как только вы освоитесь, NSXMLParser станет довольно простым в использовании. Это SAX Parser , что означает, что это анализатор, управляемый событиями. Он находит вещи и рассказывает вам об этом.

Это должно быть так.

Итак, у вас может быть что-то вроде этого:

NSXMLParser * parser = [[NSXMLParser alloc] initWithContentsOfURL:someURLToAnXMLFile];
[parser setDelegate:self];
[parser parse];
[parser release];

Затем в том же самом объекте (self) у вас могут быть некоторые из этих методов:

- (void)parserDidStartDocument:(NSXMLParser *)parser {
  //the parser started this document. what are you going to do?
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
  //the parser found an XML tag and is giving you some information about it
  //what are you going to do?
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
  //the parser found some characters inbetween an opening and closing tag
  //what are you going to do?
}

- (void)parserDidEndDocument:(NSXMLParser *)parser {
  //the parser finished. what are you going to do?
}

В списке перечислено целое множество этих методов в документации. Просто перейдите к ссылке на класс NSXMLParser, и все они перечислены в разделе «Методы делегирования». Как только вы освоитесь, NSXMLParser станет довольно простым в использовании. Это SAX Parser , что означает, что это анализатор, управляемый событиями. Он находит вещи и рассказывает вам об этом.

Это должно быть так.

Итак, у вас может быть что-то вроде этого:

NSXMLParser * parser = [[NSXMLParser alloc] initWithContentsOfURL:someURLToAnXMLFile];
[parser setDelegate:self];
[parser parse];
[parser release];

Затем в том же самом объекте (self) у вас могут быть некоторые из этих методов:

- (void)parserDidStartDocument:(NSXMLParser *)parser {
  //the parser started this document. what are you going to do?
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
  //the parser found an XML tag and is giving you some information about it
  //what are you going to do?
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
  //the parser found some characters inbetween an opening and closing tag
  //what are you going to do?
}

- (void)parserDidEndDocument:(NSXMLParser *)parser {
  //the parser finished. what are you going to do?
}

В списке перечислено целое множество этих методов в документации. Просто перейдите к ссылке на класс NSXMLParser, и все они перечислены в разделе «Методы делегирования». Как только вы освоитесь, NSXMLParser станет довольно простым в использовании. Это SAX Parser , что означает, что это анализатор, управляемый событиями. Он находит вещи и рассказывает вам об этом.

раздел. Как только вы освоитесь, NSXMLParser станет довольно простым в использовании. Это SAX Parser , что означает, что это анализатор, управляемый событиями. Он находит вещи и рассказывает вам об этом.

раздел. Как только вы освоитесь, NSXMLParser станет довольно простым в использовании. Это SAX Parser , что означает, что это анализатор, управляемый событиями. Он находит вещи и рассказывает вам об этом.

50
ответ дан 30 November 2019 в 02:39
поделиться