https://github.com/geirolz/advxml
A lightweight, simple and functional DSL library to work with XML in Scala with Cats
https://github.com/geirolz/advxml
cats dsl functional functional-programming library lightweight scala scala-library scala-xml xml
Last synced: 2 months ago
JSON representation
A lightweight, simple and functional DSL library to work with XML in Scala with Cats
- Host: GitHub
- URL: https://github.com/geirolz/advxml
- Owner: geirolz
- License: apache-2.0
- Created: 2019-06-08T17:28:47.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2025-03-24T18:02:52.000Z (7 months ago)
- Last Synced: 2025-03-31T14:15:20.472Z (7 months ago)
- Topics: cats, dsl, functional, functional-programming, library, lightweight, scala, scala-library, scala-xml, xml
- Language: Scala
- Homepage: https://geirolz.github.io/advxml
- Size: 1.09 MB
- Stars: 61
- Watchers: 3
- Forks: 9
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Advxml
[](https://github.com/geirolz/advxml/actions)
[](https://codecov.io/gh/geirolz/advxml)
[](https://www.codacy.com/manual/david.geirola/advxml?utm_source=github.com&utm_medium=referral&utm_content=geirolz/advxml&utm_campaign=Badge_Grade)
[](https://mvnrepository.com/artifact/com.github.geirolz/advxml-core)
[](https://javadoc.io/doc/com.github.geirolz/advxml-core_2.13)
[](https://scala-steward.org)
[](https://github.com/geirolz/advxml/blob/main/LICENSE)
> ⚠️ Please, have a look to the new WIP project [cats-xml](https://github.com/geirolz/cats-xml) ⚠️
A lightweight, simple and functional library DSL to work with XML in Scala using native scala xml library and cats core.
## How to import
Advxml supports 2.13 and 3
**Sbt**
```sbt mdoc
libraryDependencies ++= Seq(
"com.github.geirolz" %% "advxml-core" % "2.5.0",
"com.github.geirolz" %% "advxml-xpath" % "2.5.0" //optional, for xpath support
)
```
## Structure
The idea behind this library is offer a fluent syntax to edit and read xml.
*Features:*
- [data/Value](docs/Value.md) Data types for value, keys and attributes.
- [data/Convert](docs/Convert.md) Allow instances conversion (not automatically yet)
- [transform/Transform](docs/Transform.md) Allows to edit the XML document.
- [transform/Zoom](docs/Zoom.md) Allows to traverse an XML do get nodes, attributes and text.
- [transform/Normalize](docs/Normalize.md) Allows normalizing xml docs, removing white spaces and collapse empty nodes
## Contributors
- [@pawelkaczor](https://github.com/pawelkaczor)
- [@dcsobral](https://github.com/dcsobral)
- [@liff](https://github.com/liff)
- [@argast](https://github.com/argast)
- [@danslapman](https://github.com/danslapman)