Werner Remmers wrote:
I try to transform it with an xsl-sheet that copies its most part into a
new document and makes changes on just some few nodes. And that doesn't
work because Saxon throws the error reported.
I must not change &a to & within the uri because the server won't be
able no more to fetch the GET parameter "a" from the uri. It's not my
server.
The input to your XSLT stylesheet is (usually) XML parsed by an XML
parser and for that to work the ampersand needs to be escaped as &
or you need to use a CDATA section <![CDATA[&]]>. Both should work e.g.
<url_download>http://example.com/?var=1&a=3</url_download>
<url_download><![CDATA[http://example.com/?var=1&a=3]]></url_download>
Isn't it really possible to copy the string as CDATA?
When you use XSLT to transform XML to XML then CDATA section in the
serialized result are possible using the cdata-section-elements
attribute on the xsl:output element e.g.
<xsl:output method="xml" cdata-section-elements="url_download"/>
After copying the content into a new document (what doesn't work yet) I
want to use the <url_download> to dynamically generate links with its
CDATA. One solution to th '&a' problem would be using the function
fn:encode-for-uri (XSLT 2.0) which will transform back the &a to &a.
Unfortunately it is not possible because the libxst-processor that is
included in PHP and that I must use for 'XSLT on the fly' only supports
XSLT 1.0. That's why I must not change &a to &
Your original request said you use Saxon and XSLT 2.0, now it is PHP and
XSLT 1.0. But either way the input to the XSLT stylesheet is usually an
XML document parsed by an XML parser requiring the input to be
well-formed. If you transform to HTML and you are concerned that HTML
browsers are not able to deal with links containing & then rest
assured that both HTML and XML require the ampersand to be escaped as
& and that browsers unescape such ampersands in links before making
HTTP requests.
--
Martin Honnen
http://JavaScript.FAQTs.com/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--