<commit_before># xtract
[![Build Status](https://travis-ci.com/lucidsoftware/xtract.svg?branch=master)](https://travis-ci.com/lucidsoftware/xtract)

Xtract is a scala library for deserializing XML. It is heavily inspired by the combinators in the [Play JSON library][1], in particular the [`Reads[T]`][2] class.

See the [introductory blog post](https://www.lucidchart.com/techblog/2016/07/12/introducing-xtract-a-new-xml-deserialization-library-for-scala/).

## Usage

To use Xtract in your sbt project add the [following dependency](https://mvnrepository.com/artifact/com.lucidchart/xtract):

``` scala
"com.lucidchart" %% "xtract" % "2.0.0"
```

There is also an `xtract-testing` artifact which provides helpful matchers and other functions for use with
specs2. To use in your test you can add the [following sbt dependency](https://mvnrepository.com/artifact/com.lucidchart/xtract-testing):

``` scala
"com.lucidchart" %% "xtract-testing" % "2.0.0" % "test"
```

## Documentation

The scaladoc API for the core functionality is available at http://lucidsoftware.github.io/xtract/core/api/com/lucidchart/open/xtract/index.html.

Scaladocs for the specs2 extensions is available at http://lucidsoftware.github.io/xtract/testing/api/com/lucidchart/open/xtract/index.html.

## Example

An example project using xtract can be found at http://github.com/lucidsoftware/xtract-example.

[1]: https://www.playframework.com/documentation/2.5.x/ScalaJsonCombinators
[2]: https://www.playframework.com/documentation/2.5.x/api/scala/index.html#play.api.libs.json.Reads
<commit_msg>update library versions in readme<commit_after># xtract
[![Build Status](https://travis-ci.com/lucidsoftware/xtract.svg?branch=master)](https://travis-ci.com/lucidsoftware/xtract)

Xtract is a scala library for deserializing XML. It is heavily inspired by the combinators in the [Play JSON library][1], in particular the [`Reads[T]`][2] class.

See the [introductory blog post](https://www.lucidchart.com/techblog/2016/07/12/introducing-xtract-a-new-xml-deserialization-library-for-scala/).

## Usage

To use Xtract in your sbt project add the [following dependency](https://mvnrepository.com/artifact/com.lucidchart/xtract):

``` scala
"com.lucidchart" %% "xtract" % "2.2.1"
```

There is also an `xtract-testing` artifact which provides helpful matchers and other functions for use with
specs2. To use in your test you can add the [following sbt dependency](https://mvnrepository.com/artifact/com.lucidchart/xtract-testing):

``` scala
"com.lucidchart" %% "xtract-testing" % "2.2.1" % "test"
```

## Documentation

The scaladoc API for the core functionality is available at http://lucidsoftware.github.io/xtract/core/api/com/lucidchart/open/xtract/index.html.

Scaladocs for the specs2 extensions is available at http://lucidsoftware.github.io/xtract/testing/api/com/lucidchart/open/xtract/index.html.

## Example

An example project using xtract can be found at http://github.com/lucidsoftware/xtract-example.

[1]: https://www.playframework.com/documentation/2.5.x/ScalaJsonCombinators
[2]: https://www.playframework.com/documentation/2.5.x/api/scala/index.html#play.api.libs.json.Reads

{'fraction_non_alphanumeric': 0.13780025284450062, 'fraction_numerical': 0.015170670037926675, 'mean_word_length': 4.96045197740113, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 14, 'lorem ipsum': 0, 'www.': 6, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '277710', 'n_tokens_mistral': 1130, 'n_tokens_neox': 1045, 'n_words': 244}