[swift] SwiftSoup을 이용해 웹페이지에서 특정 태그의 이웃 요소를 선택하는 방법은 무엇인가요?

SwiftSoup은 Swift에서 HTML을 파싱하고 조작할 수 있는 라이브러리입니다. 특정 태그의 이웃 요소를 선택하려면 Element의 메서드를 사용하여 원하는 조건을 지정하면 됩니다.

아래는 SwiftSoup을 사용하여 특정 태그의 이웃 요소를 선택하는 예제 코드입니다:

import SwiftSoup

func selectNeighborElements() {
    do {
        // HTML 파싱
        let html = "<html><body><p>첫 번째 문단</p><div><span>내용1</span><span>내용2</span><span>내용3</span></div><p>두 번째 문단</p></body></html>"
        let doc: Document = try SwiftSoup.parse(html)

        // 특정 태그의 이전 요소 선택
        let previousElement = try doc.select("div").first()?.previousElementSibling()
        print(previousElement?.outerHtml() ?? "")

        // 특정 태그의 다음 요소 선택
        let nextElement = try doc.select("div").first()?.nextElementSibling()
        print(nextElement?.outerHtml() ?? "")

        // 특정 태그의 첫 번째 자식 요소 선택
        let firstChildElement = try doc.select("div").first()?.child(0)
        print(firstChildElement?.outerHtml() ?? "")

        // 특정 태그의 마지막 자식 요소 선택
        let lastChildElement = try doc.select("div").first()?.child((try doc.select("div").first()?.childrenSize() ?? 0) - 1)
        print(lastChildElement?.outerHtml() ?? "")
    } catch {
        print("Error: \(error)")
    }
}

selectNeighborElements()

위의 코드에서는 doc.select("div")를 사용하여 div 태그를 선택하고, 이후 .first()를 호출하여 첫 번째 div 요소를 가져옵니다. 그런 다음, .previousElementSibling() 메서드를 사용하여 이전 요소, .nextElementSibling() 메서드를 사용하여 다음 요소, .child(index) 메서드를 사용하여 자식 요소를 선택합니다. 선택한 요소의 outerHtml()을 호출하여 해당 요소의 HTML을 출력합니다.

이와 같은 방법으로 SwiftSoup을 사용하여 웹페이지에서 특정 태그의 이웃 요소를 선택할 수 있습니다.

참고 문서: