1

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

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

4

2 回答 2

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>
于 2012-08-19T18:11:13.027 回答
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来处理输入节点两次甚至更多次,使用一种模式创建单个页面,使用第二种模式创建目录。

于 2012-08-19T09:52:58.913 回答