Skip to content
forked from jbowtie/ratago

Go implementation of an XSLT 1.0 processor

License

Notifications You must be signed in to change notification settings

NordSecurity/ratago

 
 

Repository files navigation

ratago

Build Status codecov Go Report Card GoDoc

Ratago is a (mostly-compliant) implementation of an XSLT 1.0 processor written in Go and released under an MIT license.

Currently it should be seen as experimental - it lacks full compliance with the spec. It has been run successfully on a number of scripts of moderate complexity as of the 0.4-pre release.

The test suite is derived from the test suite used by the libxslt library written by Daniel Veillard. See http://xmlsoft.org/XSLT/ for details on libxslt.

Installation

For MacOS:

# Need pkg-config, see https://stackoverflow.com/a/36794452/700471
brew install pkg-config 
# Need libxml2 source, see https://github.com/mitmproxy/mitmproxy/issues/68#issuecomment-120301708
brew install libxml2
sudo ln -s /usr/local/opt/libxml2/include/libxml2/libxml /usr/local/include/libxml 
# Install with Go Modules
GO111MODULE=on go get github.com/jbowtie/ratago

Example Usage

ratago -indent transform.xslt data.xml > result.xml

TODO

There are several tasks remaining to reach full compliance. Until these tasks are complete the API is subject to change.

  • Implement xsl:decimal-format and format-number.
  • Ensure that errors are properly progogated in Go fashion.

About

Go implementation of an XSLT 1.0 processor

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%