Выберите из нескольких импортированных XSLT для применения - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь выбрать файл XSLT для применения ко всему моему входному XML-файлу.Я не уверен, как это сделать.Я пытаюсь сделать следующее:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0">
  <xsl:import href="a.xslt" />
  <xsl:import href="b.xslt" />      
  <xsl:output method="xml" indent="no" omit-xml-declaration="yes" />

  <xsl:template match="/">
    <xsl:choose>
      <xsl:when test="(/*[local-name()='1'])>
        ---------Apply file a.xslt here----------
      </xsl:when>
      <xsl:when test="(/*[local-name()='2'])>
        ----------Apply file b.xslt here-------------
      </xsl:when>
    </xsl:choose>
  </xsl:template>    

</xsl:stylesheet>

Я хочу применить различные XSLT-файлы на основе моего XML-ввода.Есть ли способ сделать это?

1 Ответ

0 голосов
/ 04 января 2019

В XSLT 3.0 вы можете сделать это напрямую, используя функцию fn: transform ().

Если у вас нет доступа к XSLT 3.0, обычным решением будет использование режимов: определение правил шаблонав a.xslt и b.xslt с разными режимами и применять шаблоны в соответствующем режиме.

(Кстати, local-name() элемента никогда не будет числовым.)

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