Skip to content

rozap/exquery

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Exquery

A simple Elixir DOM library for building a tree from an HTML string and then selecting elements that lurk within.

Example

Selecting an li :tag with specific attrs using one/2

"""
<div class="red-fish">
  <ul class="blue-fish">
    <li class="one-fish">Hello</li>
    <li class="two-fish">World</li>
  </ul>
</div>
"""
|> Exquery.tree
|> Exquery.Query.one({:tag, "li", [{"class", "one-fish"}]})

This evaluates to:

{{:tag, "li", [{"class", "one-fish"}]}, [{:text, "Hello", []}]}

Similarly, you can select all elements using all/2

"""
<div class="red-fish">
  <ul class="blue-fish">
    <li class="one-fish">Hello</li>
    <li class="two-fish">World</li>
  </ul>
</div>
"""
|> Exquery.tree
|> Exquery.Query.all({:tag, "li", []})

This evaluates to:

[{{:tag, "li", [{"class", "one-fish"}]}, [{:text, "Hello", []}]},
 {{:tag, "li", [{"class", "two-fish"}]}, [{:text, "World", []}]}]

Todo:

  • Documentation
  • CSS style selections
  • Streaming tokenizer and tree builder

About

elixir html parser

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages