floki
Pathex !
https://github.com/mischov/meeseeks мне вот этот нравится
Мех, все эти либы работают только в одну сторону — вытащить что-то из структуры. А вот чтобы в струкутур внутрь что-то написать, это уже для них тяжело
Так они уже есть — Pathex
Не думал об этом, я чисто для Парсинга пользовал
Да даже для парсинга Вот как, например, найти такой <div>, внутри которого есть <div a=2>?
defmodule MyParser do @html """ <!doctype html> <html> <body> <section> <div> <div a="2">Find me</div> </div> </section> </body> </html> """ def parse_and_search(html \\ @html) do {:ok, document} = Floki.parse_document(html) [{"html", _, [{"body", _, body}]}] = document find(body) end defp find([{"div", _, [{"div", [{"a", "2"}], _}]} = div | _]), do: div defp find([{_, _, children} | siblings]), do: find(children) || find(siblings) defp find([]), do: nil end
Круто, но это однонаправленный и не композабельный селектор :/
Очень похоже по принципу на SAX-парсинг, который тоже трудозатратен в доработке под каждое конкретное выражение, но быстр.
Обсуждают сегодня