Current section

86 Versions

Jump to

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