DocBook XML,文件链接结构之间? TOC?

时间:2012-08-18 14:21:59

标签: xml xslt xhtml docbook

我已将一堆旧的学校演示文稿转换为Docbook XML,每个文件都按预期显示。我打算将它们转换为XHTML / HTML,我的测试转换看起来很棒。我唯一的问题是如何用链接创建一个正确的目录结构,我只是不确定要考虑什么过程。例如......我希望在页面的页脚上有链接到其他转换后的Docbook页面。如果有人有想法考虑,我会很感激输入。

另外关于XSLT,我使用的xsltproc只支持XSLT 1.0 +通用EXSLT模块。 xsltproc是libxslt的命令行界面,它仍然不支持XSLT 2.0。尽管具体示例很好,但我真的需要了解一般方法。有了这些信息,我可以进一步搜索,最终找到具体的例子。

2 个答案:

答案 0 :(得分:1)

鉴于此源XML文档

<ref>
    <refentrytitle>FILE</refentrytitle>
    <volnum>1</volnum>
</ref>

然后进行此转换

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:variable name="vU" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
 <xsl:variable name="vL" select="'abcdefghijklmnopqrstuvwxyz'"/>

 <xsl:template match="ref">
   <a href="/{volnum}/{translate(refentrytitle, $vU, $vL)}.xml">
     <xsl:value-of select="refentrytitle"/>
   </a>
 </xsl:template>
</xsl:stylesheet>

生成想要的正确结果

<a href="/1/file.xml">FILE</a>

答案 1 :(得分:0)

使用Saxon 9,XmlPrime或AltovaXML等处理器支持的XSLT 2.0,您可以使用xsl:result-document http://www.w3.org/TR/xslt20/#creating-result-trees使用一个样式表创建多个结果文档。通常使用模式http://www.w3.org/TR/xslt20/#modes来处理输入节点两次甚至更多次,一种模式可以创建单独的页面,第二种模式就是toc。