diff --git a/Sources/Kanna/libxmlHTMLNode.swift b/Sources/Kanna/libxmlHTMLNode.swift index 1ab4a7c..7892622 100755 --- a/Sources/Kanna/libxmlHTMLNode.swift +++ b/Sources/Kanna/libxmlHTMLNode.swift @@ -193,7 +193,7 @@ final class libxmlHTMLNode: XMLElement { return } xmlUnlinkNode(node.nodePtr) - xmlFree(node.nodePtr) + xmlFreeNode(node.nodePtr) } private func node(from ptr: xmlNodePtr?) -> XMLElement? { diff --git a/Tests/KannaTests/KannaHTMLModifyingTests.swift b/Tests/KannaTests/KannaHTMLModifyingTests.swift index 95f8b67..21d2920 100644 --- a/Tests/KannaTests/KannaHTMLModifyingTests.swift +++ b/Tests/KannaTests/KannaHTMLModifyingTests.swift @@ -53,6 +53,22 @@ class KannaHTMLModifyingTests: XCTestCase { XCTAssert(doc.body!.toHTML == modifyNextHTML) } } + + func testHTML_RemoveNode() { + let html = "
A love triangle.

Three's Company

" + + let removedHTML = "
A love triangle.
" + + do { + guard let doc = try? HTML(html: html, encoding: .utf8), + let h1 = doc.at_css("h1") else { + return + } + + doc.body?.removeChild(h1) + XCTAssert(doc.body!.toHTML == removedHTML) + } + } } extension KannaHTMLModifyingTests {