geirolz / advxml

A lightweight, simple and functional library DSL to work with XML in Scala with Cats

Version Matrix

Advxml

Build Status codecov Codacy Badge Sonatype Nexus (Releases) javadoc.io Scala Steward badge GitHub license

A lightweight, simple and functional library DSL to work with XML in Scala using native scala xml library and cats core.

How to import

Supported Scala 2.12 and 2.13

Maven for 2.12

<dependency>
    <groupId>com.github.geirolz</groupId>
    <artifactId>advxml_2.12</artifactId>
    <version>version</version>
</dependency>

Maven for 2.13

<dependency>
    <groupId>com.github.geirolz</groupId>
    <artifactId>advxml_2.13</artifactId>
    <version>version</version>
</dependency>

Sbt

  libraryDependencies += "com.github.geirolz" %% "advxml" % <version>

Structure

The idea behind this library is offer a fluent syntax to edit and read xml.

Features:

  • Attribute Data types for keys and attributes.
  • Transform Allows to edit the XML document.
  • Convert Allows to convert Model to XML and vice versa(not automatically yet)
  • Zoom Allows to traverse an XML do get nodes, attributes and text.
  • Normalize Allows to remove white spaces and collapse empty nodes in a XML document