Создайте новый элемент в xslt, добавив к нему значение атрибута - PullRequest
0 голосов
/ 27 июня 2018
<sec id="abg-c42-s1-1" disp-level="2">
<title>Introduction</title>

Проблема: Я должен проверить атрибут disp-level и заменить тег на . Пример: если значение disp-level равно «1», тег заменяется на

. Если значение disp-level равно «3», то тег заменяется на и так далее. Любые решения? Спасибо ...

1 Ответ

0 голосов
/ 27 июня 2018

Хорошо, напишите шаблон, соответствующий sec[@disp-level]/title, который делает это:

<xsl:template match="sec[@disp-level]/title">
  <xsl:element name="h{../@disp-level}">
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>

Как и для большинства таблиц стилей, этот подход работает и легко допускает дальнейшие модульные преобразования других элементов или узлов, если таблица стилей включает шаблон преобразования идентификаторов

<xsl:template match="@* | node()">
  <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
  </xsl:copy>
</xsl:template>

или в XSLT 3 декларация <xsl:mode on-no-match="shallow-copy"/>.

...