У меня есть шаблон XHTML. Я хочу создать XSL FO из шаблона XHTML. Как я могу преобразовать XHTML в XSLFO? Я создал XSL FO, используя замену строки XHTML File. Возможно ли создать XSL FO для шаблона без использования замены строки? Ниже представлен мой шаблон XHTML.Как создать XSL FO из файла XHTML? Как я могу преобразовать XHTML в XSLFO?
< div>
{:header:}{:date:}
< p>
{:mailingattn:} < br />
{:facilityname:} < br />
{:facilitystreet:} < br />
{:facilitystreet2:} <br />
{:facilitycity:}, {:facilitystate:} {:facilityzip:} < br />
{:facilitycountry:}
< /p>
< br />
< p>abcd,</p>
< p>The Department of abcd:< /p>
< p>{:checkreturnreason:}< /p>
< p>{:message:}< /p>
< pnext>If you have any questions or need assistance, please feel free to abcd:< /pnext>
< pnext>Sincerely, <br />
{:signature:}
< /pnext>
{:footer:}
< /div>
Предопределенные XSL FO шаблона
< xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
< xsl:output method="xml"/>
< !--
expects a rootpath attribute in one of the tags. this should correspond to the
physical path of the apps folder without the ending slash
-->
< xsl:variable name="rootpath"
select="//@rootpath" />
< xsl:template match="/">
< xsl:apply-templates/>
< /xsl:template>
< xsl:template match="div">
< xsl:apply-templates/>
< /xsl:template>
< xsl:template match="img">
< fo:external-graphic height="auto" width="auto">
< xsl:attribute name="src">
< xsl:value-of select="concat($rootpath, substring-after(@src,'../..'))" />
< /xsl:attribute>
< /fo:external-graphic>
< /xsl:template>
< xsl:template match="xsl:value-of">
< xsl:copy-of select="." />
< /xsl:template>
< xsl:template match="br">
< fo:block>
< /fo:block>
< /xsl:template>
< xsl:template match="p">
< fo:block space-before="8pt" space-after="4pt">
< xsl:apply-templates/>
< /fo:block>
< /xsl:template>
< xsl:template match="pnext">
< fo:block keep-with-next="always" space-before="8pt" space-after="4pt">
< xsl:apply-templates/>
< /fo:block>
< /xsl:template>
< xsl:template match="table">
< fo:table width="100%" font-family="Arial">
< fo:table-body>
< xsl:for-each select="tr">
< fo:table-row>
< xsl:for-each select="td">
< xsl:variable name="width">
< xsl:value-of select="@width"/>
< /xsl:variable>
< fo:table-cell padding-top='4pt' width="{$width}">
< xsl:for-each select="span">
< xsl:variable name="fsize">
< xsl:value-of select="@size"/>
< /xsl:variable>
< fo:block font-size="{$fsize}pt" text-align="right">
< xsl:apply-templates/>
< /fo:block>
< /xsl:for-each>
< /fo:table-cell>
< /xsl:for-each>
< /fo:table-row>
< /xsl:for-each>
< fo:table-row>
< fo:table-cell border=".2pt solid black">
< /fo:table-cell>
< fo:table-cell border=".2pt solid black">
< /fo:table-cell>
< /fo:table-row>
< /fo:table-body>
< /fo:table>
< /xsl:template>
< /xsl:stylesheet>
Просьба показать XSL-FO, который вы хотите получить в результате, и XSLT, который у вас есть. –
Привет, Даниэль Мне нужно создать XSL FO с помощью предопределенного шаблона. Теперь я добавил предопределенный шаблон под вопрос. – Krishnan
И какова ваша фактическая проблема сейчас? –