Previous | Next | Indexes
enternetusers > Tutorials > XSLT 2.0 Tutorial > Functions operating on strings (14/15) >

Escaping of URI with encode-for-uri(), iri-to-uri(), and escape-html-uri()

The function encode-for-uri() escapes characters which can cause problems in path segments of URL addresses. All characters are escaped other than the lower case letters a-z, the upper case letters A-Z, the digits 0-9, the NUMBER SIGN "#" and HYPHEN-MINUS ("-"), LOW LINE ("_"), FULL STOP ".", EXCLAMATION MARK "!", TILDE "~", ASTERISK "*", APOSTROPHE "'", LEFT PARENTHESIS "(", and RIGHT PARENTHESIS ")".

The function iri-to-uri() should be used for strings intended as URL addresses. All characters are escaped other than the lower case letters a-z, the upper case letters A-Z, the digits 0-9, the NUMBER SIGN "#" and HYPHEN-MINUS ("-"), LOW LINE ("_"), FULL STOP ".", EXCLAMATION MARK "!", TILDE "~", ASTERISK "*", APOSTROPHE "'", LEFT PARENTHESIS "(", and RIGHT PARENTHESIS ")", SEMICOLON ";", SOLIDUS "/", QUESTION MARK "?", COLON ":", COMMERCIAL AT "@", AMPERSAND "&", EQUALS SIGN "=", PLUS SIGN "+", DOLLAR SIGN "$", COMMA ",", LEFT SQUARE BRACKET "[", RIGHT SQUARE BRACKET "]", and the PERCENT SIGN "%".

The function escape-html-uri() escapes all characters except printable characters of the US-ASCII coded character set, specifically the octets ranging from 32 to 126 (decimal). The effect of the function is to escape a URI in the manner html user agents handle attribute values that expect URIs. Each character in $uri to be escaped is replaced by an escape sequence, which is formed by encoding the character as a sequence of octets in UTF-8, and then representing each of these octets in the form %HH, where HH is the hexadecimal representation of the octet. This function must always generate hexadecimal values using the upper-case letters A-F. This function is not implemented in saxon 8.6 at this moment (22nd Nov 2005), please send me an email if you find this sentence after March 2006)

XSLT

      <xsl:stylesheet
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0">
            <xsl:output  method="xml"
                        indent="yes"
                        omit-xml-declaration="yes"/>

            <xsl:template  match="/aaa">
                  <xxx>
                        <xsl:value-of  select="encode-for-uri(bbb)"/>
                  </xxx>
                  <yyy>
                        <xsl:value-of  select="iri-to-uri(bbb)"/>
                  </yyy> <!--zzz> <xsl:value-of select="escape-html-uri(bbb)"/> </zzz-->
                  <ppp>
                        <a  href="{concat(iri-to-uri(ccc),encode-for-uri(ddd))}">
                              <xsl:value-of  select="concat(ccc,ddd)"/>
                        </a>
                  </ppp> <!--qqq> <a href="{escape-html-uri(concat(ccc,ddd))}"> <xsl:value-of select="concat(ccc,ddd)"/> </a> </qqq-->
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb>[Are you (john@my.home)!?]</bbb>
            <ccc>/a dir/</ccc>
            <ddd>~$ADD/RESS%</ddd>
      </aaa>
Output

      <xxx>%5BAre%20you%20(john%40my.home)!%3F%5D</xxx>
      <yyy>[Are%20you%20(john@my.home)!?]</yyy>
      <ppp>
            <a  href="/a%20dir/~%24ADD%2FRESS%25">/a dir/~$ADD/RESS%</a>
      </ppp>


Previous chapter: Arithmetics
Next chapter: Transforming strings with regular expressions
Previous page: Absolute URIs' from relative ones with resolve-uri function
Next page: Strings from unicode codepoints

Board Shorts >>


Quiksilver Board Shorts
Roxy Board Shorts
Volcom Board Shorts
Billabong Board Shorts
Quicksilver Board Shorts
Hurley Board Shorts
Quicksilveredition Board Shorts
Rusty Board Shorts
Reef Board Shorts
oneill Board Shorts

Ezekiel surf clothing Board Shorts
Paul Frank surf clothing Board Shorts
Mada surf clothing Board Shorts
Analog surf clothing Board Shorts
Quicksilver surf clothing Board Shorts
Jet Pilot surf clothing Board Shorts
Quicksilveredition surf clothing Board Shorts
Dakine surf clothing Board Shorts
Matix surf clothing Board Shorts
Reef surf clothing Board Shorts
O'neil surf clothing Board Shorts

Also, you will want to check out Stanton California so you can see what's up and they are part of Stanton City Hall as well.

You can also get Organic Skin Care products from Bliss Bath Body and you must check out their Natural Body Lotions and bath soaps

Now if you are looking for the best deals on surf clothing from Quiksilver and Roxy then you have to check these amazing deals here: quiksilver tees http://www.killerdana.com/killerdana/search2.asp?SearchResults.SearchHandle=QT1NZW5zIFNTIFRlZXN_Qj1NZW5zIFNTIFRlZXN_RD01OX5FPTBeMV4yXm51bV9uZXd_ST1QcmljZX5LPTR_TD0xfk09NH5OPTN_&SearchResults.SortAscending=False&SearchResults.SortBy=num_new&Answer=766

quiksilver shirt Quiksilver Shirt

quiksilver board short quiksilver board short

quiksilver clothing Quiksilver clothing

quiksilver apparel Quiksilver apparel

quiksilver jackets quiksilver jacket

quiksilver jeans Quiksilver Shirt

Quiksilver Shirt

Quiksilver Pants

quiksilver shoes Quiksilver Shoes

quiksilver sweaters Quiksilver Sweaters

quiksilver tank Quiksilver Tanks

quiksilver tees Quiksilver Tops

Quiksilver Tees

quiksilver wetsuits Quiksilver Wetsuits

Quiksilver Wetsuits

Hey, check out this Organic Skin Care European Soaps along with Natural Lavender Body Lotion and shea butter

This is the guy we need in government office. His name is Kevin Carr City Of Stanton Council Candidate and he is a great guy. and we can get surf t shirts surfing shirt and Swim Shop for swim wear wimming gear women's and men's This is the guy we need in government office. His name is Kevin Carr City Of Stanton Council Candidate and he is a great guy. and we can get surf t shirts surfing shirt and Swim Shop for swim wear wimming gear women's and men's