Xslt 获取嵌套“的编号”;orderedlist“;使用docbook中的外部参照或其他元素
我想使用docbook编写合同样式的文档,并且我想使用外部参照或其他元素在此文档中创建链接。我可以链接到如下所示的章节或其他元素,以证明它是有效的。我无法使用自动生成的内容(非常类似于当前外部参照)将复杂的链接到嵌套的“orderedlist”。 我需要的是: 我在docbook中有一个嵌套的orderedlist,用阿拉伯语计算,然后是loweralpha,然后是lowerroman:Xslt 获取嵌套“的编号”;orderedlist“;使用docbook中的外部参照或其他元素,xslt,docbook,Xslt,Docbook,我想使用docbook编写合同样式的文档,并且我想使用外部参照或其他元素在此文档中创建链接。我可以链接到如下所示的章节或其他元素,以证明它是有效的。我无法使用自动生成的内容(非常类似于当前外部参照)将复杂的链接到嵌套的“orderedlist”。 我需要的是: 我在docbook中有一个嵌套的orderedlist,用阿拉伯语计算,然后是loweralpha,然后是lowerroman: 1. Aaa1 a) Bbb1 i) Ccc1 ii) Ccc2 - this elem
1. Aaa1
a) Bbb1
i) Ccc1
ii) Ccc2 - this element has an ID
通过id将外部参照指向所述元素时,外部参照仅生成“ii”-最后一个数字。不是给定元素的整个“路径”或“树”
我需要使用自动生成链接内容的外部参照创建一个链接,使其看起来像1。a) ii 或
“1级:1级、2级:b级、3级:ii级” 最终,如果orderedlist出现在第3章和第3.5节中,那么外部参照的输出将类似:
第三章第3.5节,第3.b.ii节 或者与此类似,如果orderedlist只有两个级别,而不是三个级别:
第三章,第3.5节,第3.b节 这是一个当前的测试用例:
<?xml version="1.0" encoding="utf-8" ?>
<book xmlns="http://docbook.org/ns/docbook">
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chapter_element">
<title>Chapter title</title>
<orderedlist numeration="arabic">
<listitem>
Aaa1
<orderedlist numeration="loweralpha">
<listitem>Bbb1</listitem>
<listitem>
Bbb2
<orderedlist numeration="lowerroman">
<listitem>Ccc1</listitem>
<listitem xml:id="item_element">Ccc2</listitem>
</orderedlist>
</listitem>
</orderedlist>
</listitem>
</orderedlist>
<section>
<title>Section1 title</title>
<para>
Lorem ipsum
</para>
</section>
<section xml:id="section_element">
<title>Section2 title</title>
<para>
Dolor si amet
</para>
</section>
<para>
Chapter: <xref linkend="chapter_element" xrefstyle="template:the chapter numbered %n"/>
</para>
<para>
Chapter: <xref linkend="chapter_element" xrefstyle="select: labelnumber quotedtitle"/>
</para>
<para>
Section: <xref linkend="section_element" xrefstyle="template:the section numbered %n"/>
</para>
<para>
Section: <xref linkend="section_element" xrefstyle="select: labelnumber quotedtitle"/>
</para>
<para>
ListItem: <xref linkend="item_element" xrefstyle="template:the item numbered %n"/>
</para>
<para>
ListItem: <xref linkend="item_element" xrefstyle="select: labelnumber quotedtitle"/>
</para>
</chapter>
</book>
外部参照生成的文本足以用于章节和剖面。但是,正如您在本例末尾看到的,外部参照仅返回最后一个列表项编号(lowerroman中的“ii”)。我需要的-以某种方式自定义外部参照以返回整个路径,例如:“Level1:1,Level2:b),Level3:ii”
我读过一些关于自定义外部参照的文章,但无法使其与OrderedList一起使用,只能与章节和剖面元素一起使用
我不是XSLT方面的专家,因此任何能推动我前进的东西或任何工作示例都将受到高度赞赏。谢谢大家!
Update1:使用未修改的docbook5 XLS文件在windows上使用xsltproc.exe进行渲染
xsltproc.exe --xinclude C:/path/to/docbook5/xsl/xhtml/docbook.xsl source/xref-test.xml > dist/html-flat/xref-test.html
似乎使用此XSLT时,两个节的链接内容并没有得到节号,只有标题。这意味着我使用的XSLT必须稍微修改一下。但是,章节链接内容和列表项内容的呈现方式如图所示。如果您想重现这个问题,只需使用docbook5/xsl/xhtml/docbook.xsl呈现上面的XML,如上所示。章节链接内容还可以,我现在不介意章节链接,但我想要的是获得嵌套OrderedList的编号。您可以包括样式表(或重现问题所需的相关部分?)章节编号输出“1.2”吗在设置
之后呈现。很遗憾,orderedlist似乎没有任何跟踪继承的功能,如“section.level”
xsltproc.exe --xinclude C:/path/to/docbook5/xsl/xhtml/docbook.xsl source/xref-test.xml > dist/html-flat/xref-test.html