Giter VIP home page Giter VIP logo

xslt-processor's Introduction

XSLT-processor -- A JavaScript XSLT Processor Library

Howto

Install xslt-processor using npm::

npm install xslt-processor

Within your ES2015+ code, import the two main functions and apply them:

import {xsltProcess, xmlParse} from "xslt-processor"

const xml = xmlParse(xmlString); // xmlString: string of xml file contents
const xslt = xmlParse(xsltString); // xsltString: string of xslt file contents
const outXmlString = xsltProcess(xml, xslt); // outXmlString: output xml string.

If you write pre-2015 JS code, make adjustments as needed.

Introduction

XSLT-processor is an implementation of XSLT in JavaScript. Because XSLT uses XPath, it is also an implementation of XPath that can be used independently of XSLT. This implementation has the advantange that it makes XSLT uniformly available whenever the browser's native XSLTProcessor() is not available such as in node.js or in web workers.

XSLT-processor is based on Google's AJAXSLT which was written before XSLTProcessor() became available in browsers. XSLT-processor has a modernized codebase.

This implementation of XSLT operates at the DOM level on its input documents. It internally uses a DOM implementation to create the output document, but usually returns the output document as text stream. The DOM to construct the output document can be supplied by the application, or else an internal minimal DOM implementation is used. This DOM comes with a minimal XML parser that can be used to generate a suitable DOM representation of the input documents if they are present as text.

Tests and usage examples

The files ending in _unittest.html are jsunit test pages. See http://www.jsunit.net/.

The files xslt.html and xpath.html in the directory test are interactive tests. They can be run directly from the file system; no HTTP server is needed.

Both unit tests and interactive tests demonstrate the use of the library functions. There is not much more documentation so far.

Conformance

A few features that are required by the XSLT and XPath standards were left out. They are marked in the source code using alert() statements. See xslt.js.

The DOM implementation is minimal so as to support the XSLT processing, and not intended to be complete.

The implementation is all agnostic about namespaces. It just expects XSLT elements to have tags that carry the xsl: prefix, but we disregard all namespace declaration for them.

There are a few nonstandard XPath functions. Grep xpath.js for "ext-" to see their definitions.

References

[XPATH] XPath Specification http://www.w3.org/TR/1999/REC-xpath-19991116. [XSLT] XSLT Specification http://www.w3.org/TR/1999/REC-xslt-19991116. [DOM] W3C DOM Level 3 Core Specification http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/. [ECMA] ECMAScript Language Specification http://www.ecma-international.org/publications/standards/Ecma-262.htm.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.