Как обернуть соответствующий элемент с помощью xslt - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь добавить элемент-оболочку <fo:block-container> к любому подходящему элементу <table>, используя xslt. <fo:block-container> необходимо использовать то же значение атрибута width, что и <table>

Пример источника будет выглядеть как

<table width="654px">
 --contents
</table>

Желаемый результат будет похож на

<fo:block-container width="654px">
  <fo:table width="654px">
     --contents
  </fo:table>
</fo:block-container>

Некоторые похожие посты, которые я видел до сих пор, добавляют новый элемент внутри «совпадающего» элемента - в данном случае <table>, например, XML XSLT Wrap конкретные элементы . Но я хочу обернуть весь соответствующий элемент, используя указанный мной элемент обертки.

1 Ответ

1 голос
/ 09 ноября 2019

Попробуйте:

<xsl:template match="table">
    <fo:block-container width="{@width}">
        <fo:table>
            <xsl:apply-templates select="@*|node()"/>
        </fo:table>
    </fo:block-container>
</xsl:template>

Предполагается, что у вас есть другие шаблоны для обработки узлов таблицы - см. Пример здесь: https://xsltfiddle.liberty -development.net / ncntCSh / 1

...