2014-10-13 4 views
0

я есть, например, этот документ:Parser Элемент с дочерним элементом

<Category> 
<Name>NameParent</Name> 
    <Category> 
    <Category> 
    <Name>NameChild1</Name> 
    <Category> 
     <Name>NameChild2</Name> 
    </Category> 
    </Category> 
    </Category> 
</Category> 

и это мой класс:

class Category: NSObject { 
    var attributeID:NSString = "" 
    var nameCategory:NSString = "nameNotFound" 
    var objCategory:Category? 
} 

как увидеть категорию рекурсивный класс.

Дети могут иметь, в свою очередь, других детей и иметь неограниченное число, как я могу справиться с этим? Как я могу структурировать это в парсере?

EDIT: в это время анализатор не может найти отца и их детей, но я не могу их хорошо сохранить в списке.

Спасибо

ответ

0

Я бы выполнил это с помощью какой-то стека. На каждом открытии <Category> нажимаем новый элемент в стеке и каждый </Category> вытаскиваем последний из стека.

Один простой подход - использовать массив для стека.

Создайте класс для элементов категории. Во время разбора, когда didStartElement срабатывает с elementName == "Category", создайте новый экземпляр этого класса и выполните дальнейшую обработку до didEndElement, снова с elementName == "Category"

+0

Именно это я и хочу делать. Я программист на Java, и, к сожалению, я не могу реализовать его быстро. Здесь я загрузил фрагмент кода: http://piratepad.net/stacl Как вы можете видеть, я не могу, как только вы найдете ребенка, правильно реализовать ogetto. –

+0

Я только что обновил свой ответ с некоторыми соображениями о том, как реализовать это. – zisoft

+0

см. Мою ошибку: http://it.tinypic.com/view.php?pic=jjtpft&s=8#.VDvIS-f1d-U –

Смежные вопросы