combine two xml files into one

2019-07-26 20:20发布

问题:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <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:

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.



标签: php xml xslt