Я tring, чтобы преобразовать xsl:fo
в xslt
(для вывода HTML). Затем я применил бы xslt
вместо xsl:fo
, получая выход HTML вместо PDF.Получение html xslt из xsl: fo
Как это сделать?
Мне нужен API для обработки XML или JAXP, который преобразует XML и XSL в другой вывод. Итак, я попытался написать шаблон XSLT:
<xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="fo"
>
<xsl:template match="/xsl:template[@match='/root']/fo:root">
<xsl:apply-templates select="fo:page-sequence"/>
</xsl:template>
<xsl:template match="fo:page-sequence">
<xsl:for-each select="fo:flow[@flow-name='xsl-region-body']">
<xsl:call-template name="xsl-regional-body">
<xsl:with-param name="fontsize"><xsl:value-of select="@font-size"/></xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:template>
<xsl:template name="xsl-regional-body">
<xsl:param name="fontsize" />
<body>
<xsl:if test="$fontsize"> <!-- costruisce <font size=""> -->
<font>
<xsl:attribute name="size">
<xsl:value-of select="$fontsize"/>
</xsl:attribute>
</font>
</xsl:if>
<xsl:for-each select="*/xsl:choose">
<xsl:call-template name="xsl-choose"/>
</xsl:for-each>
<xsl:apply-templates select="."/>
</body>
</xsl:template>
<xsl:template name="xsl-choose">
<xsl:value-of select="."/>
</xsl:template>
я получить что-то вроде
<body><font size="10pt"/>
...
text words..
</body>
Но удалить все XSL: выбрать XSL: когда и другие теги, как мне все эти теги, потому что мне нужно передать данные xml во втором проходе с использованием Jaxp и произвести html .. Я бы получил
<body><font size="10pt"/>
<xsl:choose>
<xsl:when test="ddx[@id='LET.....>
<xsl::value-of select="ddx[@id='Lx']/r/PE...>
</xsl:when>..
</xsl:choose>
text words..
</body>
Как получить узлы XSL, такие как текстовый узел?
Просто чтобы быть ясно ... Я считаю, что вы пытаетесь создать XSL, который будет преобразовывать XSL, предназначенный для создания XSL FO в XSL, который будет создать HTML, правильно? Вы хотите отобразить все конструкции, такие как fo: block to p и fo: table to table и т. Д.? –
У вас нет доступа к XML, который использовался как вход для преобразования FO? Если вы это сделаете, это станет более простой отправной точкой. – Hobbes