与儿童元素的分析器元素

时间:2014-10-13 11:47:23

标签: parsing swift

我有这样的文件:

<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?
}

如何查看类别是一个递归类。

反过来,孩子们可能还有其他孩子,并且我可以无限制地使用这个孩子吗? 我怎样才能在解析器中构造它?

编辑:此时,解析器无法找到父亲及其子女,但我无法将其妥善保存在列表中。

由于

1 个答案:

答案 0 :(得分:0)

我会用某种堆栈来实现它。在每次打开<Category>时,在堆栈上和每个</Category>上推送一个新元素,从堆栈中弹出最后一个元素。

一种简单的方法是使用数组作为堆栈。

为类别元素创建一个类。解析时,只要didStartElement触发elementName == "Category",就会创建该类的新实例并在didEndElement触发之前进行进一步处理,再次使用elementName == "Category"