Как использовать мой импортированный XML в моем проекте target-c? - PullRequest
0 голосов
/ 28 декабря 2011

У меня есть этот демонстрационный XML-файл:

<trains>
    <israel>
        <Lehavim>
            <lat>31.370201</lat>
            <lon>34.798336</lon>
        </Lehavim>
        <tel-aviv>
            <lat>32.073847</lat>
            <lon>34.793358</lon>
        </tel-aviv>
    </israel>
</trains>

, загруженный в мой проект с использованием этого кода:

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSURL *url = [[NSURL alloc] initWithString:@"http://www.amotech.co/trains.xml"];
    NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];
    [xmlParser setDelegate:self];
    BOOL success = [xmlParser parse];

    if(success)
        NSLog(@"success");
    else
        NSLog(@"Error");
}

Мне нужно получить XML в UITableView - я хочучтобы показать название железнодорожной станции (например: «Lehavim» в TableView.

и после того, как я выбрал один из элементов моего табличного представления - я хочу загрузить текущие данные lat и lon в двойные объекты.

Я бы хотел, чтобы вы помогли мне с этим, пожалуйста. Спасибо, амир.

1 Ответ

0 голосов
/ 28 декабря 2011

Звучит так, будто вам нужно сначала получить основы:

Эта ссылка ведет вас к мрачным деталям NSXMLParser непосредственно из яблока.

Эта ссылка показывает фантастический пример использования NSXMLParser.

Эта ссылка предлагает несколько простых примеров добавления объектов в массив.

Эта ссылка - очень хороший учебник по UITableViewController.

Вам потребуется немного смазки для локтя.

Советы

Чтобы избавить себя от головной боли и повысить гибкость в xml, я рекомендую изменить структуру xml так, чтобы вы не использовали имена элементовв качестве значений.

Изменение:

<trains>
    <israel>
        <Lehavim>
            <lat>31.370201</lat>
            <lon>34.798336</lon>
        </Lehavim>
        <tel-aviv>
            <lat>32.073847</lat>
            <lon>34.793358</lon>
        </tel-aviv>
    </israel>
</trains>

на:

<trains>
    <train>
       <name>israel</name>
       <location>
           <name>Lehavim</name>
           <lat>31.370201</lat>
           <lon>34.798336</lon>
       </location>
       <location>
           <name>tel-aviv</name>
           <lat>32.073847</lat>
           <lon>34.793358</lon>
       </location>
    </train>
</trains>
...