Я хочу создать приложение для навигации по иерархии данных. Я консультировался с этой страницей Drill-down Hierarchical UITableView и не знаю, как реализовать структуру узлов с помощью xml для ее реализации. Я пытаюсь избежать создания 100 табличных контроллеров и т. Д. По моему мнению, до сих пор я считаю, что мне нужно использовать узлы. После того, как я проснулся полностью, мне нужно будет использовать другой диспетчер представлений, но я считаю, что понимаю, как это сделать.Swift - сверлить иерархические данные с помощью UITableView
Вот мини-пример моего XML-файла. Я могу внести в него изменения, если это необходимо, чтобы сделать работу.
<hnt>
<face>
<action id="1">
<name>Occipitofrontalis</name>
<type>data</type>
<description>data</description>
</action>
</face>
<temporoman>
<mandibulardep>
<action id="1">
<name>Occipitofrontalis</name>
<type>data</type>
<description>data</description>
</action>
<action id="2">
<name>Occipitofrontalis</name>
<type>data</type>
<description>data</description>
</action>
</mandibulardep>
</temporoman>
</hnt>
<face>
</face>
Я использую этот код для анализа моего xml-файла. Я не уверен, как распечатать образец.
override func viewDidLoad() {
super.viewDidLoad()
if let path = Bundle.main.url(forResource: "01 - MainCategories", withExtension: "xml") {
if let parser = XMLParser(contentsOf: path) {
parser.delegate = self
parser.parse()
}
}
}
func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
eName = elementName
if elementName == "mainCat" {
mainCategoriesTitle = String()
}
}
func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
if elementName == "mainCat" {
let mCat = MainCategories()
mCat.mainCategoriesTitle = mainCategoriesTitle
mainCat.append(mCat)
}
}
func parser(_ parser: XMLParser, foundCharacters string: String) {
let data = string.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
if (!data.isEmpty) {
if eName == "title" {
mainCategoriesTitle += data
}
}
}
Можете ли вы представить небольшой репрезентативный образец xml? Вы еще разобрали его? Пожалуйста, покажите структуру, испущенную из разбора. – danh
Вы можете повторно использовать один и тот же контроллер представления и нажимать его вручную, если структура подобна для каждого узла. –
@danh Я обновил свой вопрос с помощью некоторого кода и образца xml. – Number1