Синтаксический анализ XML с помощью TBXML работает в демонстрационном проекте, но не работает в моем реальном проекте. - PullRequest
2 голосов
/ 27 октября 2011

Мне действительно нужна помощь в разборе XML с помощью TBXML. Я создал демонстрационный проект с представлением, в котором есть кнопка, когда пользователи нажимают эту кнопку, я просто вызываю функцию синтаксического анализа TBXML из другого класса. Я делаю это, чтобы проверить, работает ли моя функция TBXMLParsing правильно или нет. И это хорошо работает в моем демо-проекте.

Наконец, после того, как я протестировал ее, я копирую и вставляю функцию в свой реальный проект, в котором кнопка отображается в первом виде, когда я нажимаю на эту кнопку, она вызывает функцию TBXMLParsing. Другими словами, это в основном то же самое, что и демонстрационный проект. Однако функция TBXMLParsing не работает. Он не может пройти через все элементы.

У вас есть идеи? Спасибо за помощь.

Обновление: Это работает, если я симулирую свое приложение на реальном устройстве, но оно не пересекает XML, если я симулирую его на симуляторе. Это так странно. Однако он работает на симуляторе, если я создаю новый проект. Таким образом, в моем приложении должно быть что-то, что мешает анализатору XML.

Есть идеи? Спасибо

Update2:

NSData *data = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://dl.dropbox.com/u/37064335/ex.xml"]];

TBXML *tbxml = [[TBXML alloc] initWithXMLData:data];
[data release];
TBXMLElement *root = tbxml.rootXMLElement;

// if root element is valid
if (root) {
    NSLog(@"root =%s",root->name);

Это часть меня испортила. Я тестировал в демонстрационном приложении, Nslog root = GetUserAccountsRespond Однако в моем приложении Nslog root = (ноль-ничего распечатан). Оба проекта в основном одинаковы.

Ответы [ 2 ]

4 голосов
/ 28 октября 2011

Хорошо. Вот решение для тех, у кого такая же проблема, как и у меня.Проблема заключалась в том, что когда я проанализировал (shift + command + B) мой проект, xcode обнаружил некоторую «семантическую проблему» в TBXML.m.Затем я просто следовал руководству xcode, чтобы изменить «=» на «==» в 3 местах, где в TBXML.m указано «Process XML» (строка 258 311 и 458).Таким образом, TBXML не работает, потому что он не может обрабатывать входной XML.Эта проблема сводила меня с ума на 2 дня.Спасибо Том Брэдли за TBXML

0 голосов
/ 28 октября 2011

Я бы проверил, правильно ли загружается XML-документ, который вы пытаетесь проанализировать, прежде чем передавать его в TBXML для декодирования. Мне кажется, что есть проблема с загрузкой кода на сим. Попробуйте вывести содержимое файла в журнал, чтобы проверить его правильность.

...