Я пытаюсь разобрать XML и отображать данные в виде таблицы. Если в XML есть 4 тега ListSections, в представлении таблицы будет 4 раздела, и каждый раздел будет отображать строку в соответствии с данными. Каждый тег ListSection имеет количество тегов Team. Я хочу показать эти команды в строке в соответствии с разделами.Swift - созданный синтаксический анализ вложенной xml-проблемы
Это моя структура XML.
<List>
<ListSection sectionName="section 1">
<Team id="10" name="Team1">
<OppositeTeam oppName="TeamX" day="Monday"/>
</Team>
<Team id="20" name="Team2">
<OppositeTeam oppName="TeamY" day="Tuesday"/>
</Team>
</ListSection>
<ListSection sectionName="section 2">
<Team id="100" name="Team100">
<OppositeTeam oppName="TeamA" day="Monday"/>
</Team>
<Team id="200" name="Team200">
<OppositeTeam oppName="TeamB" day="Monday"/>
</Team>
</ListSection>
</List>
Я пытаюсь создать класс модели для этого xml. Я создал 2 класса до сих пор.
class ListSection {
var sectionName: String = String()
var team : [Team] = []
}
class Team {
var teamId:String = String()
var teamName:String = String()
}
Я не уверен в этой модели данных, которую я создал. Может ли кто-нибудь предложить мне, если я пойду в правильном или неправильном направлении?
Заранее спасибо.
Обновлено: Это мой синтаксический код Swift. Я не могу сохранить данные в соответствующем объекте.
var listSection: [ListSection] = []
var teamArray : [Team] = []
var teamData = NSMutableArray()
var sectionName = String()
var teamName = String()
var listSectionObj = ListSection()
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
if elementName == "ListSection" {
listSectionObj = ListSection()
listSectionObj.sectionName = ""
listSectionObj.team = []
if let sectionName = attributeDict["sectionName"] as String? {
self. sectionName = sectionName
}
}else if elementName == "Team" {
if let teamName = attributeDict["TeamName"] as String? {
self.teamName = teamName
}
}
}
func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
if elementName == "ListSection" {
listSectionObj.sectionName = sectionName
listSection.append(listSectionObj)
}else if elementName == "Team" {
teamObj = Team()
teamObj.teamName = teamName
teamArray.append(teamObj)
print("teamArray = \(teamArray)")
}
}