본문 바로가기
개발/iOS

[Swift] XML 파일에서 값 가져오는 예시

by 언제나초심. 2019. 3. 20.
반응형

개요

xml 파일에서 문자열 데이터를 가져오는 예시입니다. 


AEXML 라이브러리 를 이용했습니다. 


제가 사용하는 소스 인데, 핵심부분만 추렸습니다. (까먹을 경우를 대비해서...)



AEXML 

  - 공식 : https://github.com/tadija/AEXML



추가하는 방법은, Swift Package Manager, Carthage, CocoaPods 세 종류가 있는데, 제 경우에는 Carthage 방식으로 추가했습니다.


Carthage 로 추가할 경우에는

github "tadija/AEXML"

를 cartfile 에 추가해주고 , 터미널에서 carthage update --platform iOS 를 해줍니다.




소스 코드


import UIKit
import AEXML

class Main_ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        guard let
            xmlPath = Bundle.main.path(forResource: "dictionary", ofType: "xml"),
            let data = try? Data(contentsOf: URL(fileURLWithPath: xmlPath))
            else { return }
        do {
            let xmlDoc = try AEXMLDocument(xml: data)
            
            var key: String = ""
            
            let description = xmlDoc.root["key123"]["description"].string
                
            do {
                str_explanation = try NSAttributedString(data: description.data(using: String.Encoding.unicode, allowLossyConversion: true)!, options: [.documentType : NSAttributedString.DocumentType.html], documentAttributes: nil)
                // txview_description.attributedText = str_explanation // textview 에 값을 넣는 예시
            } catch {
                print(error)
            }
        }
        catch {
            print("\(error)")
        }
    }
}





참고

  - Swift 3.2 를 이용중이라면 AEXML 4.2.2 버전을 이용.

  - Swift 4 버전대를 이용중이라면 최신 버전 (현재 기준으로 4.3.3) 을 이용.




반응형