Думаю, это очень простой вопрос. Но хотя я создаю очень причудливое преобразование xslt, я не могу решить эту простую задачу.
Проблема в следующем: я хочу добавить атрибуты к узлам xsl-fo в зависимости от данных xml. Эти атрибуты часто содержат дефис. Как я могу добавить их с помощью преобразования xslt, где xsl: attributes не любит символ переноса.
В узле xml у меня есть два атрибута (имя и значение). Пример: name = "font_size", value = "7pt"
<Report>
<text content="I am a text">
<blockFormat name="font_size" value="7pt" />
</text>
</Report>
(Я понимаю, что это не нужно, потому что вы хотите работать со стилями и т. Д.. Это просто пример с упрощенной задачей)
Теперь я хочу создать блок xsl-fo и разместить эти атрибуты в элементе блока с помощью атрибута xsl-function xsl:
<fo:block>
<attribute name="{replace(@name,'_','-')}" select="@value" />
....
</fo:block>
цель, которую нужно достичь после трансформации
<fo:block font-size="7pt">
....
</fo:block
Он не работает, и я думаю, это потому, что в xslt я не могу поставить дефис в имени атрибута, но в атрибуте fo он необходим.
Есть ли способ использовать для этого функцию xsl: attribute?
А если нет, то какую работу вы предлагаете.
Спасибо за помощь!!!!