Nokogiri. But like, for Elixir.
NOTE: All objects are mutable, and thus process local. If you try to pass XML nodes or XML documents between processes they will be inaccessible.
DOUBLE NOTE: C is not my first language. I've probably got memory leaks and just plain logic errors hanging about all over. Contributions and criticism welcome.
- XML Documents
- Read document from string
- Read document from path
- Create new documents
- Attribute support
- Get/set for attributes by namespace
- Get/set without namespace
- Element support
- Create new elements
- Remove elements
- Move elements
- Copy elements
- XML fragment support
- Set element content
- Append element content
- XML Schemas
- Load schemas from string (with path awareness for includes)
- Load schemas from path
- In-memory document validation
- Streaming document validation (not fully supported by libxml2 - may not ever be completed)
- XSL Transforms
- Simple File transforms and parameters
- Included/multi-file transform support
- XPath Support
- Return element lists
- Return non-element result sets
- Namespaced queries
- Namespaceless queries
Using Hex, the package can be installed by adding exogiri
to your list of dependencies in mix.exs
:
def deps do
[
{:exogiri, "~> 0.3.0"}
]
end
The docs for the most recent version can be found at Hex Docs.