GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
xmerl_xs(3) Erlang Module Definition xmerl_xs(3)

xmerl_xs - Erlang has similarities to XSLT since both languages have a functional programming approach.

Erlang has similarities to XSLT since both languages have a functional programming approach. Using xmerl_xpath it is possible to write XSLT like transforms in Erlang.

XSLT stylesheets are often used when transforming XML documents, to other XML documents or (X)HTML for presentation. XSLT contains quite many functions and learning them all may take some effort. This document assumes a basic level of understanding of XSLT.

Since XSLT is based on a functional programming approach with pattern matching and recursion it is possible to write similar style sheets in Erlang. At least for basic transforms. This document describes how to use the XPath implementation together with Erlangs pattern matching and a couple of functions to write XSLT like transforms.

This approach is probably easier for an Erlanger but if you need to use real XSLT stylesheets in order to "comply to the standard" there is an adapter available to the Sablotron XSLT package which is written i C++. See also the Tutorial.

built_in_rules(Fun, E) -> List

The default fallback behaviour. Template funs should end with:
template(E) -> built_in_rules(fun template/1, E).

select(String::string(), E) -> E

Extracts the nodes from the xml tree according to XPath.

See also: value_of/1.

value_of(E) -> List

Types:

E = term()

Concatenates all text nodes within the tree.

Example:

  <xsl:template match="title">
    <div align="center">
      <h1><xsl:value-of select="." /></h1>
    </div>
  </xsl:template>
  

becomes:

   template(E = #xmlElement{name='title'}) ->
     ["<div align="center"><h1>",
       value_of(select(".", E)), "</h1></div>"]
  

xslapply(Fun::Function, EList::list()) -> List

Types:

Function = () -> list()

xslapply is a wrapper to make things look similar to xsl:apply-templates.

Example, original XSLT:

  <xsl:template match="doc/title">
    <h1>
      <xsl:apply-templates/>
    </h1>
  </xsl:template>
  

becomes in Erlang:

  template(E = #xmlElement{ parents=[{'doc',_}|_], name='title'}) ->
    ["<h1>",
     xslapply(fun template/1, E),
     "</h1>"];
  

<>
xmerl 1.3.28

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.