У меня есть xml-файл, который я создаю сам.libxml2 xml parsing issue
<?xml version='1.0' encoding='utf-8' ?>
<Root>
<ChildElements>
<type name='xx' attr='false'>
<child id='1' regex='^[0-9]{11}$'>
<BBB>
<node1 name='aaa' regex='\w{5}'/>
<node2 name='bbb' regex='\w{3}'/>
</BBB>
</child>
<child>
.
.
.
</child>
</type>
</ChildElements>
</Root>
Нечто подобное. Я хочу проанализировать его на объект документа xml и выполнить итерацию через его узлы, я использую libxml2 для ios.
NSString *xmlPath = [[NSBundle mainBundle] pathForResource:@"xmlcontent" ofType:@"xml"];
NSData *xmlData = [NSData dataWithContentsOfFile:xmlPath];
NSString* xml = [[NSString alloc ] initWithData:xmlData encoding:NSUTF8StringEncoding];
int size=[xml lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
xmlDocPtr docptr=xmlParseMemory([xml UTF8String], size);
но в docptr объекта есть только один узел, который является Корневым узлом, и когда я пытаюсь получить корневой узел дочерних узлов возвращает пустой узел, имя которого @ «текст».
NSXMLParser легко анализирует один и тот же XML, но я не знаю, как создать документ и перебрать узлы с помощью NSXMLParser.
вы имеете в виду закрывающий тег для типа? я забыл поставить его, но он существует в коде :) – taffarel
и тег close для ChildElements – CarlJ
нет, он просто набирает его здесь с некоторыми ошибками, все в порядке, потому что NSXMLParser анализирует его успешно – taffarel