XML을 구문 분석하려고하는데 테이블보기에서 데이터를 표시하려고합니다. XML에 4 개의 ListSections 태그가있는 경우 테이블보기에는 4 개의 섹션이 있고 각 섹션에는 데이터에 따라 행이 표시됩니다. 각 ListSection 태그에는 여러 개의 Team 태그가 있습니다. 섹션별로 해당 팀을 연속으로 표시하고 싶습니다.Swift - created parse nested 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 용 Model 클래스를 만들려고합니다. 지금까지 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)")
}
}