我已将一堆旧的学校演示文稿转换为Docbook XML,每个文件都按预期显示。我打算将它们转换为XHTML / HTML,我的测试转换看起来很棒。我唯一的问题是如何用链接创建一个正确的目录结构,我只是不确定要考虑什么过程。例如......我希望在页面的页脚上有链接到其他转换后的Docbook页面。如果有人有想法考虑,我会很感激输入。
另外关于XSLT,我使用的xsltproc只支持XSLT 1.0 +通用EXSLT模块。 xsltproc是libxslt的命令行界面,它仍然不支持XSLT 2.0。尽管具体示例很好,但我真的需要了解一般方法。有了这些信息,我可以进一步搜索,最终找到具体的例子。
答案 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。