선언
protocol XMLParserDelegate
- 인스턴스메서드
parser(_:didStartElement:namespaceURI:qualifiedName:attributes:)
특정한 엘리먼트의 열린 태그를 읽었을 때 파서객체가 델리게이트에게 엘리먼트를 전송한다.
선언
optional func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:])
- 인스턴스메서드
parser(_:foundCharacters:)
파서객체가 델리게이트에게 현재 엘리먼트의 전체 또는 일부를 나타내는 문자열을 제공하기 위해 전송한다.
선언
optional func parser(_ parser: XMLParser, foundCharacters string: String)
- 인스턴스메서드
parser(_:didEndElement:namespaceURI:qualifiedName:)
특정한 엘리먼트의 닫힌 태그를 읽었을 때 파서객체가 델리게이트에게 엘리먼트를 전송한다.
선언
optional func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?)
- NSString의 인스턴스메서드
trimmingCharacters(in:)
주어진 character set에 포함된 리시버 문자를 양쪽 끝에서 제거함으로써 만들어진 새 문자열을 반환하는 메서드
선언
func trimmingCharacters(in set: CharacterSet) -> String
- 파서중에 닫힌태그 뒤의 개행되는것을 문자로 잡는 파서가 있다!
이로인해 에러가 발생할 수 있는데
공식문서에 따르면 불린값을 가진 변수를 하나 선언하고, 함수에 따라 값을 바꾸면 해결 할 수 있다.
예시코드)
func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) {
blank = true
}
func parser(_ parser: XMLParser, foundCharacters string: String) {
if blank == true {
code
}
}
func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
blank = false
}
댓글