2013-08-28 1 views
1

Как использовать XSLT, чтобы превратить список определений HTML (DL) в таблицу с двумя столбцами XSL-FO с терминами в первом столбце и определения во втором, с несколькими определениями?Преобразование HTML DL в 2-столбную таблицу терминов и определений XSL-FO

(.. Извиняюсь, если это уже ответил где-то я искал, но не нашел)

ответ

1

Этот вопрос имеет суть найти следующие братьев и сестер, которые все еще имеют текущий DT в качестве члена: XSLT: Select following-sibling until reaching a specified tag

Тогда это всего лишь вопрос определения всей таблицы в качестве шаблона DL верхнего уровня:

<xsl:template match="dl"> 
    <fo:table> 
     <fo:table-body> 
      <xsl:for-each select="dt"> 
       <xsl:variable name="current-term" select="."/> 
       <fo:table-row> 
        <fo:table-cell font-weight="bold" width="5.5cm"> 
         <fo:block> 
          <xsl:apply-templates /> 
         </fo:block> 
        </fo:table-cell> 
        <fo:table-cell> 
         <fo:block> 
          <xsl:apply-templates select="following-sibling::dd[preceding-sibling::dt[1] = $current-term]" /> 
         </fo:block> 
        </fo:table-cell> 
       </fo:table-row> 
      </xsl:for-each> 
     </fo:table-body> 
    </fo:table> 
</xsl:template> 
<xsl:template match="dd"> 
    <fo:block> 
     <xsl:apply-templates /> 
    </fo:block> 
</xsl:template> 
Смежные вопросы