Packages
floki
0.18.1
0.38.4
0.38.3
0.38.2
0.38.1
0.38.0
0.37.1
0.37.0
0.36.3
0.36.2
0.36.1
0.36.0
0.35.4
0.35.3
0.35.2
0.35.1
0.35.0
0.34.3
0.34.2
0.34.1
0.34.0
0.33.1
0.33.0
0.32.1
0.32.0
0.31.0
0.30.1
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.1
0.23.0
0.22.0
0.21.0
0.20.4
0.20.3
0.20.2
0.20.1
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.2
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.1
0.10.0
0.9.0
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.0
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.1
0.1.0
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Floki is a simple HTML parser that enables search for nodes using CSS selectors.
Current section
86 Versions
Jump to
Current section
86 Versions
Compare versions
5
files changed
+25
additions
-17
deletions
| @@ -27,4 +27,4 @@ | |
| 27 27 | {<<"name">>,<<"mochiweb">>}, |
| 28 28 | {<<"optional">>,false}, |
| 29 29 | {<<"requirement">>,<<"~> 2.15">>}]]}. |
| 30 | - {<<"version">>,<<"0.18.0">>}. |
| 30 | + {<<"version">>,<<"0.18.1">>}. |
| @@ -161,11 +161,12 @@ defmodule Floki do | |
| 161 161 | with the function `mutation` and returns the whole element tree |
| 162 162 | |
| 163 163 | ## Examples |
| 164 | - iex> Floki.attr("<div id='a'></div>", "#a", "id", fn(id) -> String.replace(id, "a", "b") end) |
| 165 | - [{"div", [{"id", "b"}], []}] |
| 166 164 | |
| 167 | - iex> Floki.attr("<div class='class_name'></div>", "div", "id", fn _ -> "b" end) |
| 168 | - [{"div", [{"id", "b"}, {"class", "class_name"}], []}] |
| 165 | + iex> Floki.attr("<div id='a'></div>", "#a", "id", fn(id) -> String.replace(id, "a", "b") end) |
| 166 | + [{"div", [{"id", "b"}], []}] |
| 167 | + |
| 168 | + iex> Floki.attr("<div class='class_name'></div>", "div", "id", fn _ -> "b" end) |
| 169 | + [{"div", [{"id", "b"}, {"class", "class_name"}], []}] |
| 169 170 | |
| 170 171 | """ |
| 171 172 | @spec attr(binary | html_tree, binary, binary, (binary -> binary)) :: html_tree |
| @@ -30,7 +30,10 @@ defmodule Floki.FilterOut do | |
| 30 30 | |
| 31 31 | case html_tree do |
| 32 32 | tree when is_tuple(tree) -> |
| 33 | - hd(html_as_tuples) |
| 33 | + case html_as_tuples do |
| 34 | + [] -> [] |
| 35 | + [head | _] -> head |
| 36 | + end |
| 34 37 | trees when is_list(trees) -> |
| 35 38 | html_as_tuples |
| 36 39 | end |
| @@ -23,6 +23,8 @@ defmodule Floki.HTMLTree do | |
| 23 23 | |
| 24 24 | def build(html_tuples) when is_list(html_tuples) do |
| 25 25 | reducer = fn |
| 26 | + ({:pi, _}, tree) -> tree |
| 27 | + ({:pi, _, _}, tree) -> tree |
| 26 28 | ({tag, attrs, children}, tree) -> |
| 27 29 | root_id = IDSeeder.seed(tree.node_ids) |
| @@ -2,18 +2,20 @@ defmodule Floki.Mixfile do | |
| 2 2 | use Mix.Project |
| 3 3 | |
| 4 4 | @description "Floki is a simple HTML parser that enables search for nodes using CSS selectors." |
| 5 | - @version "0.18.0" |
| 5 | + @version "0.18.1" |
| 6 6 | |
| 7 7 | def project do |
| 8 | - [app: :floki, |
| 9 | - name: "Floki", |
| 10 | - version: @version, |
| 11 | - description: @description, |
| 12 | - elixir: ">= 1.3.0", |
| 13 | - package: package(), |
| 14 | - deps: deps(), |
| 15 | - source_url: "https://github.com/philss/floki", |
| 16 | - docs: [extras: ["README.md"], main: "Floki"]] |
| 8 | + [ |
| 9 | + app: :floki, |
| 10 | + name: "Floki", |
| 11 | + version: @version, |
| 12 | + description: @description, |
| 13 | + elixir: ">= 1.3.0", |
| 14 | + package: package(), |
| 15 | + deps: deps(), |
| 16 | + source_url: "https://github.com/philss/floki", |
| 17 | + docs: [extras: ["README.md"], main: "Floki"] |
| 18 | + ] |
| 17 19 | end |
| 18 20 | |
| 19 21 | def application do |
| @@ -37,7 +39,7 @@ defmodule Floki.Mixfile do | |
| 37 39 | files: ["lib", "src/*.xrl", "mix.exs", "README.md", "LICENSE"], |
| 38 40 | links: %{ |
| 39 41 | "GitHub" => "https://github.com/philss/floki", |
| 40 | - "Docs" => "https://hexdocs.pm/floki" |
| 42 | + "Docs" => "https://hexdocs.pm/floki" |
| 41 43 | } |
| 42 44 | } |
| 43 45 | end |