как различить еще два тега Xml, содержащие одно и то же имя в iPhone, с помощью анализатора ns xml - PullRequest
0 голосов
/ 05 марта 2012

Я новичок в разработке для iPhone.У меня есть два тега XML имеет одно и то же имя.как дифференцировать эти два тега.я имею в виду, как определить, когда первый тег будет закрыт

   <data>
    <level>0</level>
    <type>video</type>
    <file>file_CTcE96nTfP3sXIQ8.wmv</file>
    <position>0,0,640,360</position>
    <duration>121</duration>
</data>
<data>
    <level>0</level>
    <type>image</type>
    <file>file_CTNJ1da7ntcTGmxd.jpg</file>
    <position>640,0,1024,360</position>
    <duration>121</duration>
</data>
<data>
    <level>0</level>
    <type>image</type>
    <file>file_CTAo1yLWaZqXkpic.png</file>
    <position>0,360,337,480</position>
    <duration>121</duration>
</data>

я реализовал эти методы.теги есть.Я хочу поместить все теги данных в три массива.Как я могу достичь этого. Я имею в виду, как это

data1(file,type,position,duration)
data2(file,type,position,duration)
data3(file,type,p‌​osition,duration)

Ответы [ 2 ]

1 голос
/ 07 марта 2012

В didStartElement

if ([elementName isEqualToString:@"data"]) {
    data = [[NSMutableDictionary alloc] init];
    level = [NSMutableString alloc] init];
    type = [NSMutableString alloc] init];
    position = [NSMutableString alloc] init];
    duration = [NSMutableString alloc] init];
}   

Затем в didEndElement

if ([elementName isEqualToString:@"data"]) {
    [data setObject:type forKey:@"type"];
    [data setObject:position forKey:@"position"];
    [data setObject:duration forKey:@"duration"];
    [dataList addObject:data];
}

U необходимо добавить метод делегата foundCharacters и назначить значения для строк здесь

if ([currentElement isEqualToString:@"type"]) {
    [type appendString:string];
}

if ([currentElement isEqualToString:@"position"]) {
    [position appendString:string];
}
if ([currentElement isEqualToString:@"duration"]) {
    [duration appendString:string];
}

level,позиция и продолжительность должны быть проанализированы как обычные теги ..

0 голосов
/ 05 марта 2012
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{

     if ([elementName isEqualToString:@"data"]) 
       {

       }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...