Как сделать NSXMLDocument из списка файлов

У меня есть список файлов, например /Test/Demo1/Demo2/Demo3/demo.mp4, и я хочу создать XML-документ в Objective-C. У меня есть код для создания NSMutableDictionary:

-(NSMutableDictionary *)addFile:(NSString *)path toTree:(NSMutableDictionary *)tree {
NSMutableDictionary *node = tree;

NSArray *components = [path componentsSeparatedByString:@"/"];

for (NSUInteger i = 0; i < [components count] - 1; i++) {
    NSString *key = components[i];
    if (node[key] == nil) {
        node[key] = [NSMutableDictionary dictionary];
    }
    node = node[key];
}

NSString *name = [components lastObject];
if ([name length] > 0) {
    node[name] = [NSMutableDictionary dictionary];
    node = node[name];
}
return node;

}

Но у меня нет хороших результатов. Посоветуйте мне, как преобразовать список файлов в NSMutableArray или NSXMLDocument.

Спасибо


person Torokh    schedule 15.05.2018    source источник
comment
Не могли бы вы предоставить желаемые примеры ввода и вывода?   -  person battlmonstr    schedule 15.05.2018
comment
Строка ввода: 170d8b9, Technic / Ingest / demo / PGM__demo2_181158_ # 4.mov и вывод: <folders> <folder id="1.0">Technics</folder> <folder id="1.1">demo</folder> <file iNode="170d8b9">PGM_demo2_181158_#4.mov</file> </folder> </folder> </folders>   -  person Torokh    schedule 15.05.2018


Ответы (1)


Есть несколько примеров в XML на основе дерева. Руководство по программированию. Отметьте «Создание нового XML-документа» после «Создание объекта документа из существующего XML», а также «Запись XML-документа», где показано, как преобразовать его в NSData (который можно записать в файл или преобразовать в NSString).

Еще одна статья с примерами.

Этот XML API необходим, если вы хотите создать формально соответствующие стандартные файлы XML.

В качестве альтернативы вы можете просто вручную создать строку с помощью NSMutableString. Один из примеров этого из Интернета работает с другой структурой, чем ваша, но вы должны уловить идею.

После построения дерева файлов и каталогов вы можете перемещаться по нему, используя такой алгоритм, как поиск в глубину, и попутно создайте свой NSXMLDocument или NSMutableString.

person battlmonstr    schedule 15.05.2018