# XmlQuery
Some simple XML query functions. Delegates much of its work to `:xmerl`, but provides
an API similar to `HtmlQuery`.
```elixir
iex> alias XmlQuery, to: Xq
iex> xml = """
<?xml version="1.0"?>
<family>
<child age="12" name="Alice" />
<child age="9" name="Billy">
<toys>
<toy name="Voltron">
<limb>Leg</limb>
<animal>Lion</animal>
<color>Blue</color>
</toy>
</toys>
</child>
</family>
"""
iex> xml |> Xq.all("//child") |> Enum.map(&Xq.attr(&1, "age"))
["12", "9"]
iex> xml |> Xq.find!("//toy") |> Xq.text()
"Leg Lion Blue"
iex> xml |> Xq.find!("//toy/animal") |> Xq.text()
"Lion"
```
## API Docs
See the documentation for the main `XmlQuery` module for details and more examples:
<https://hexdocs.pm/xml_query/XmlQuery.html>
## Installation
```elixir
def deps do
[
{:xml_query, "~> 0.1.0"}
]
end
```
## Development
```shell
brew bundle
bin/dev/doctor
bin/dev/update
bin/dev/audit
bin/dev/shipit
```
## References
- https://gist.github.com/sasa1977/5967224
- https://medium.com/erlang-battleground/the-hidden-xml-simplifier-a5f66e10c928