/LilHTML

a lil html parser

Primary LanguageHTMLMIT LicenseMIT

Lil Parser

It's lil html parser with ample opportunities for optimization.

Usage

let parser = Parser(html: """
<div>
  <div class="container">
    <h1>Hi it's lil tidy</h1>
    <article>
      <p class="one two">hello</p>
      <p>world</p>
    </article>
    <footer>
      <p>it's the footer</p>
    </footer>
  </div>
</div>
""")

// Get an ElementNode
let parsed = try parser.parse().get()

// Search for tags
let paragraphs = parsed.find(.p)
XCTAssertEqual(3, paragraphs.count) // Passes!

// Search for tags inside tags
let footerParagraphs = parsed.find(.p, in: [.footer])
XCTAssertEqual(1, footerParagraphs.count) // Passes!

// Search by attribute
let firstParagraph = parsed.find(attributes: ["class": .contains("one")])
XCTAssertEqual(1, firstParagraph.count) // Passes!