2016-10-28 12 views
0

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)") 
    } 
} 

답변

0

난 당신이 객체에 데이터를 저장 할 수 없습니다에 의해 당신이 무슨 뜻인지 모르겠지만, 당신은 개체 정의 저장하려면, 난 강력이 조사하는 것이 좋습니다 : http://nshipster.com/nscoding/ 또한

, 귀하의 데이터 구조는 XML 구조에 따라 좋은 것처럼 보입니다.