XSLT将HTML代码段插入到生成的HTML文档中

时间:2011-10-12 11:19:24

标签: xslt docbook

我有一个docBook 4.4 XML文件,它是一个用户指南。我可以使用(Maven)工具将其转换为HTML,PDF没问题。我遇到的问题是在生成的HTML文件中插入一个小的HTML代码段。

我想添加以下HTML代码段:

<xsl:template name="xxxxxxx">
  <img src="images/pdfdoc.gif">PDF</img>
</xsl:template>

生成的HTML代码如下所示:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="./hilfeKMV.css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
<meta name="date" content="10/12/2011">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084"
    alink="#0000FF">
    <div lang="de" class="book"
        title="Title">
        <div class="titlepage">
            <div>
                <div>
                    <h1 class="title">
                        <a name="d0e1"></a>title
                    </h1>
                </div>
            </div>
            <hr>
        </div>
        <div class="toc">
            <p>
                <b>TOC</b>
            </p>

我想在<div class="toc">之前插入HTML代码段...所以问题是如何解决这个问题?我正在使用docbook 1.76.0 我认为必须有类似以下内容来解决这个问题,但我不知道如何设置调用模板等?

   <xsl:template name="xxxxxxx">
      <xsl:variable name="top-anchor">
        <xsl:call-template name="object.id">
          <xsl:with-param name="object" select="/*[1]"/>
        </xsl:call-template>
      </xsl:variable>
      <img src="images/pdfdoc.gif">PDF</img>
    </xsl:template>

2 个答案:

答案 0 :(得分:1)

<div class="toc">元素由名为“make.toc”的模板生成,该模板由“division.toc”调用(在autotoc.xsl中)。要在此<div>之前输出内容,您可以覆盖自定义图层中的“division.toc”模板。只需复制原始模板并添加您的代码,如下所示:

<xsl:template name="division.toc">
  <xsl:param name="toc-context" select="."/>
  <xsl:param name="toc.title.p" select="true()"/>

  <img src="images/pdfdoc.gif" alt="PDF"/>    <!-- Your stuff here -->

  <xsl:call-template name="make.toc">
    ...
    ...
  </xsl:call-template>
</xsl:template>

答案 1 :(得分:1)

我找到了插入所需代码的正确位置。 在titlepage.templates.xsl文件中,我找到了正确的解决方案。我刚刚从titlepage.templates.xsl中获取了片段,并将其增强如下:

<xsl:template name="book.titlepage.separator">
    <div class="subsubtile">
        <div class="pdflink">
            <a href="./xxxx.pdf" title="Hilfeseite als PDF-Dokument">
                <img src="images/pdfdoc.gif" border="0" alt="Hilfeseite als PDF-Dokument" />
                <br />
                PDF
            </a>
        </div>
    </div>
    <hr/>
</xsl:template>