Provided by: erlang-manpages_20.2.2+dfsg-1ubuntu2_all bug

NAME

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

DESCRIPTION

       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.

EXPORTS

       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>"];

AUTHORS

       <>

                                                  xmerl 1.3.16                                    xmerl_xs(3erl)