tags:

views:

72

answers:

1
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
  <xsl:param name="pXml1" select="''" />
  <xsl:param name="pXml2" select="''" />
  <xsl:param name="pRoot" select="'root'" />

  <xsl:template match="/">
    <xsl:variable name="vXml1" select="document($pXml1)" />
    <xsl:variable name="vXml2" select="document($pXml2)" />

    <xsl:element name="{$pRoot}">
      <xsl:copy-of select="$vXml1/*/*" />
      <xsl:copy-of select="$vXml2/*/*" />
    </xsl:element>
  </xsl:template>

</xsl:stylesheet>

The code fails when $pXml1 contains space Ex. "a b c.xml"

How to solve it ??

Need some encode or not ?

+1  A: 

When being passed a string, the document function expects a URI. If your XSLT processor supports it, you can use the str:encode-uri extension function from EXSLT to URI-encode your filename.

Jukka Matilainen
thank you very much
brian