가끔은 JSON이 아닌 XML을 파싱해야할 경우가 있다.

공공데이터는 XML도 아직 많이 있다고 들은 것 같기도 하고?


일단 결과부터 보고 시작


1. Singleview project에서 이 코드를 그대로 복붙하고 스토리보드에서 UILabel하나만 생성하여 연결해줍시다.

(+UILabel의 numberOfLines는 좀 여유있게 20정도 잡아줬어요.)

(+ats도 해결해줍시다. 참조:http://rhammer.tistory.com/67)




http://api.androidhive.info/pizza/?format=xml에 있는 피자메뉴의 이름만 가져왔네요.



2. NSXMLParser

NSXMLParser는 XML문서를 분석하는 클래스입니다. XML문서를 읽으며 태그를 만날때 마다 이를 delegate에 알려주면 delegate에서 해당 태그와 태그아래에 있는 문자열을 통해 원하는 작업을 하게 되는 것입니다.

이 작업은 ViewController.swift의 22번째 줄 let success:Bool = parser.parse()에서 시작됩니다. 


NSXMLParser의 메소드 parse()는 XML파싱이 성공적으로 끝나면 true를 중간에 에러가 발생하여 실패하면 false를 리턴합니다.




3. NSXMLParserDelegate

델리게이트에는 3가지 주요한 메소드가 있습니다.


이 예제 소스가 워낙에 뭐랄까..

알아보기도 쉽고 쓰기도 편하게 구현되어 있어서, 쉽게 사용할 수 있을 것 같네요.

댓글로 질문 태클 환영합니다~



소스출처 : https://github.com/ashishkakkad8/SwiftXMLParsingDemo/blob/master/SwiftXMLParsingDemo/ViewController.swift

NSXMLParser : https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/

NSXMLParserDelegate : https://developer.apple.com/library/ios/documentation/Cocoa/Reference/NSXMLParserDelegate_Protocol/

저작자 표시
신고

+ Recent posts

티스토리 툴바