[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
을 사용하여 웹페이지에서 특정 태그의 이웃 요소를 선택할 수 있습니다.
참고 문서: