투케이2K

253. (ios/swift) XMLParser 사용해 xml 데이터 파싱 수행 실시 본문

IOS

253. (ios/swift) XMLParser 사용해 xml 데이터 파싱 수행 실시

투케이2K 2022. 11. 8. 09:10

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [테스트 메인 함수 정의 실시]
    func testMain() {
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> testMain() :: 테스트 함수 시작 실시]")
        print("====================================")
        print("")
        
        
        // [비동기 처리 수행]
        DispatchQueue.main.async {

            // [초기 변수 선언 실시]
            let stringData = "<rss version='2.0'><channel><title>Test Title</title><content>Test Content</content></channel></rss>"
            
            
            // [XMLParser 선언 실시]
            let parser = XMLParser(data: stringData.data(using: .utf8)!)
            parser.delegate = self // [딜리게이트 지정]
            parser.parse()
        }
    }






// MARK: - [extension 딜리게이트]
extension A_Intro : XMLParserDelegate {
    
    func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) {
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> didStartElement() :: xml 파싱 태그 확인]")
        print("elementName :: \(elementName)")
        print("qName :: \(qName)")
        print("attributeDict :: \(attributeDict)")
        print("====================================")
        print("")
    }
    
    
    /*
    func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> didEndElement() :: xml 파싱 결과 확인]")
        print("elementName :: \(elementName)")
        print("qName :: \(qName)")
        print("====================================")
        print("")
    }
    // */
    
    
    func parser(_ parser: XMLParser, foundCharacters string: String) {
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> foundCharacters() :: xml 파싱 데이터 확인]")
        print("string :: \(string)")
        print("====================================")
        print("")
    }
    
}
 

[결과 출력]


 

반응형