объединить два XML-файла в один - PullRequest
1 голос
/ 26 января 2010
<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>

Код не выполняется, если $pXml1 содержит пробел. "a b c.xml"

Как это решить ??

Нужно кодировать или нет?

1 Ответ

1 голос
/ 26 января 2010

При передаче строки функция document ожидает URI . Если ваш XSLT-процессор поддерживает его, вы можете использовать функцию расширения str:encode-uri из EXSLT для кодирования URI вашего имени файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...