NSXMLParser. Как проанализировать KVC-plist-thingamajig-like XML?

Так, в основном я хочу сделать объекты "Песнями" из iTunes Library.xml, которым проблема состоит в том, что XML-файл смотрит больше как .plist, Вот пример:

<key>56</key>
    <dict>
        <key>Track ID</key><integer>56</integer>
        <key>Name</key><string>apple-ipad-video</string>
        <key>Kind</key><string>QuickTime Movie</string>
        <key>Size</key><integer>99552974</integer>
        <key>Total Time</key><integer>440607</integer>
        <key>Date Modified</key><date>2010-05-13T19:55:21Z</date>
        <key>Date Added</key><date>2010-07-22T05:40:11Z</date>
        <key>Bit Rate</key><integer>123</integer>
        <key>Artwork Count</key><integer>1</integer>
        <key>Persistent ID</key><string>EEC08DC8DE950DF9</string>
        <key>Track Type</key><string>File</string>
        <key>Has Video</key><true/>
        <key>HD</key><false/>
        <key>Video Width</key><integer>848</integer>
        <key>Video Height</key><integer>480</integer>
        <key>Movie</key><true/>
        <key>Location</key><string>file://localhost/Users/User/Music/iTunes1/iTunes%20Media/Movies/apple-ipad-video-geo-alt1-ru-20100406_848x480/apple-ipad-video-geo-alt1-ru-20100406_848x480.mov</string>
        <key>File Folder Count</key><integer>4</integer>
        <key>Library Folder Count</key><integer>1</integer>
    </dict>
    <key>58</key>

Как я могу проанализировать его, когда все элементы - то же? Мне нужен объект в выводе, который выглядит примерно так:

@interface Song : NSObject {
    NSInteger *trackID;
    NSString *name;
    NSString *kind;
    NSInteger *size;
    ...
}

Кто-либо получил идеи?Заранее спасибо.

1
задан Yuri 24 July 2010 в 10:21
поделиться

1 ответ

Прочтите его как список и извлеките из него нужные данные.

Song *mySong = [[Song alloc]init];
NSString *filename = @"/path/to/the/file.xml";
NSDictionary *plist = [NSDictionary dictionaryWithContentsOfFile:filename];

NSLog(@"Read in plist file: %@", plist);

[mySong setTrackID: [plist valueForKey:@"Track ID"]];
2
ответ дан 2 September 2019 в 22:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: