Ошибка синтаксического анализа XML Objective-C - PullRequest
0 голосов
/ 01 ноября 2011

Я сделал XML с php и MYSQL, но когда я пытаюсь разобрать его в iphone, кажется, не работает, так как в интернет-адрес он выглядит правильно ... Вот XML:

<feed xmlns="http://74.53.32.202/~ltashiro/public/Servidor/">
<title>ServidorBaladasRSS</title>
<subtitle>Agenda</subtitle>
<Prog Id="1" Nome="Club" Desc="" Data="2011-11-01 00:00:00" Dia="2"/>
<Prog Id="1" Nome="Club" Desc="" Data="2011-11-01 00:00:00" Dia="3"/>
<Prog Id="1" Nome="Club" Desc="" Data="2011-11-01 00:00:00" Dia="4"/>
<Prog Id="2" Nome="Test" Desc="" Data="2011-11-01 00:00:00" Dia="1"/>
<Prog Id="2" Nome="Test" Desc="" Data="2011-11-01 00:00:00" Dia="2"/>
<Prog Id="2" Nome="Test" Desc="" Data="2011-11-01 00:00:00" Dia="3"/>
<Prog Id="2" Nome="Test" Desc="" Data="2011-11-01 00:00:00" Dia="4"/>
</feed>

Объектив-C:

-(void) parser:(NSXMLParser *) parser didStartElement:(NSString *)elementName namespaceURI:(NSString *) nameSpaceURI qualifiedName:(NSString *) qName attributes:(NSDictionary *) attributeDict
{
      NSLog(@"%@",elementName);
}

Мне нужно, чтобы XML был в этом формате, когда я регистрирую elementName, он записывает только фид, заголовок и субтитры, остальная часть XML выглядит так, как будто не существует ...

что-то не так с форматированием XML?

1 Ответ

2 голосов
/ 02 ноября 2011

Я просто поместил этот код в viewDidLoad ViewController и запустил его, и он выдал вывод, включающий ваши элементы Prog (вывод показан под кодом), поэтому дважды проверьте ваши данные / кодировку и т. Д.:

- (void)viewDidLoad {
    NSString *testXml = @"<feed xmlns=\"http://74.53.32.202/~ltashiro/public/Servidor/\">\
    <title>ServidorBaladasRSS</title>\
    <subtitle>Agenda</subtitle>\
    <Prog Id=\"1\" Nome=\"Club\" Desc=\"\" Data=\"2011-11-01 00:00:00\" Dia=\"2\"/>\
    <Prog Id=\"1\" Nome=\"Club\" Desc=\"\" Data=\"2011-11-01 00:00:00\" Dia=\"3\"/>\
    <Prog Id=\"1\" Nome=\"Club\" Desc=\"\" Data=\"2011-11-01 00:00:00\" Dia=\"4\"/>\
    <Prog Id=\"2\" Nome=\"Test\" Desc=\"\" Data=\"2011-11-01 00:00:00\" Dia=\"1\"/>\
    <Prog Id=\"2\" Nome=\"Test\" Desc=\"\" Data=\"2011-11-01 00:00:00\" Dia=\"2\"/>\
    <Prog Id=\"2\" Nome=\"Test\" Desc=\"\" Data=\"2011-11-01 00:00:00\" Dia=\"3\"/>\
    <Prog Id=\"2\" Nome=\"Test\" Desc=\"\" Data=\"2011-11-01 00:00:00\" Dia=\"4\"/>\
    </feed>";

    NSData *ourData =   [testXml dataUsingEncoding:NSUTF8StringEncoding]; 

    NSXMLParser *parser = [[NSXMLParser alloc] initWithData:ourData];
    [parser setDelegate:self];
    [parser parse];
}

-(void) parser:(NSXMLParser *) parser didStartElement:(NSString *)elementName namespaceURI:(NSString *) nameSpaceURI qualifiedName:(NSString *) qName attributes:(NSDictionary *) attributeDict
{
      NSLog(@"%@",elementName);
}

Это привело к следующему выводу:

[Session started at 2011-11-02 15:54:01 +1100.]
2011-11-02 15:54:04.965 TESTXML[1517:207] feed
2011-11-02 15:54:04.966 TESTXML[1517:207] title
2011-11-02 15:54:04.967 TESTXML[1517:207] subtitle
2011-11-02 15:54:04.967 TESTXML[1517:207] Prog
2011-11-02 15:54:04.968 TESTXML[1517:207] Prog
2011-11-02 15:54:04.968 TESTXML[1517:207] Prog
2011-11-02 15:54:04.969 TESTXML[1517:207] Prog
2011-11-02 15:54:04.969 TESTXML[1517:207] Prog
2011-11-02 15:54:04.970 TESTXML[1517:207] Prog
2011-11-02 15:54:04.970 TESTXML[1517:207] Prog
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...