我是 docbook 的新手,但找不到一个像样的方法来一步完成多重转换;需要对结果进行一些后处理。我想在第一步中在 docbook xml 结构中添加一个带有标题和一些文本的部分,然后在第二步中生成转换以获取我的 pdf 文件
simpleXMLtoXML.xsl
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:d="http://docbook.org/ns/docbook"
xmlns:exsl="http://exslt.org/common"
extension-element-prefixes="exsl">
<xsl:strip-space elements="*"/>
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="node( ) | @*">
<xsl:copy>
<xsl:apply-templates select="@* | node( )"/>
</xsl:copy>
</xsl:template>
<xsl:template match="d:chapter">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:copy-of select="*"/>
<xsl:element name="section" xmlns="http://docbook.org/ns/docbook">
<d:title> Cette section a été ajoutée </d:title>
<d:para> ce texte a été ajouté </d:para>
</xsl:element>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
我的 XSl 文件生成 PDF
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:set="http://exslt.org/sets"
xmlns:saxon="http://icl.com/saxon"
xmlns:exsl="http://exslt.org/common"
extension-element-prefixes="exsl"
xmlns:d="http://docbook.org/ns/docbook"
exclude-result-prefixes="d"
version="1.0">
<?cco_xsltype addon="DocBook5.0" toolchain="DocBook_to_PDF_FOP"?>
<?cco_xsltype addon="DocBook5.0" toolchain="DocBook_to_PS_FOP"?>
<!-- Import standard -->
<xsl:import href="simpleXMLtoXML.xsl"/>
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/profile-docbook.xsl"/>
<!-- DocBook XSL Parameters -->
<xsl:param select="1" name="fop1.extensions"/>
<xsl:param name="paper.type">A4</xsl:param>
<xsl:template match="book">
<xsl:variable name="content">
<xsl:apply-imports/>
</xsl:variable>
<xsl:apply-templates select="exsl:node-set($content)"/>
</xsl:template>
</xsl:stylesheet>
谢谢你的帮助。