인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

blackzombie0056's profile image
blackzombie0056

asked

iPhone iOS Development Course - Learn Swift3 & iOS10 while creating 12 apps

XMLParsing 3

XML 파일에서 읽어오려면 어떻게 하면 되나요?

Written on

·

267

0

URL에서 읽어오는 방식이 아닌 프로젝트 안에 예를 들어 Resource 폴더안에 XML 파일을 넣고 거기서 읽어오려면 어떻게 해야 하나요?
swiftios

Answer 3

0

appstamp70006님의 프로필 이미지
appstamp70006
Instructor

미안합니다. 바빠서 예전에 비슷하게 했던거 같아서 말씀 드렷는데,.. 조금 전에 테스트 해보니 안되더군요.
그래서 찾아 보니 라이브러리들이 아직 설명이 없는것도 많고, 문제는 업댓된지 일주일 조금 넘어서 stackoverflow에도 안올라오더군요. 그래서 저도 문서에 빠진 부분들을 끼워 맞춰가면 경험상 느낌까지 끼워맞춰서 아래와 같은 코드를 작성하였습니다. 잘됩니다. ^^; 설명은 간단히 아래에다 달겠습니다. 실행은 weather.xml파일 만들어서 포함하시고 테스트 해보세요. 코드는 아래에 있습니다.   let xmlPath = Bundle.main.path(forResource: "weather", ofType: "xml", inDirectory: "") //Bundle이라는 Class 가 NSBundle에서 이름을 바꾸었더군요 이 객체가 하는 일은  //An NSBundle object helps you access the code and resources in a bundle directory on disk.(문서 첫문장임) //(NSBundle 객체는 당신이 디스크의 번들디렉토리의 리소스와 코드에 접근할수 있도록 돕는다 라고 하죠.) //번들디렉토리는 간단히 말하면 프로젝트안의 디렉토리를 말하는 겁니다. let parser = XMLParser(contentsOf:URL(fileURLWithPath: xmlPath!))

0

blackzombie0056님의 프로필 이미지
blackzombie0056
Questioner

소스상에 let baseURL = "https://raw.githubusercontent.com/ChoiJinYoung/iphonewithswift2/master/weather.xml" let parser = XMLParser(contentsOf: URL(string: baseURL)!) 이부분을 let baseURL = "weather.xml" let parser = XMLParser(contentsOf: URL(string: baseURL)!) 처럼 바꾸면 된단 건가요? 뭘 잘못 한건지는 모르겠지만 parser 함수들이 호출이 안되는데...

0

appstamp70006님의 프로필 이미지
appstamp70006
Instructor

NSURL이 remote, local 둘다 지원하는데요. 그냥 XML 파일 URL 주소를 파일명으로 바꾸시면 됩니다.  
blackzombie0056's profile image
blackzombie0056

asked

Ask a question