这是示例代码:
XML
<docbody>
<p>This is the main paragraph</p>
<ul>This is a list element!</ul>
--{add thousands of lines of code}--
<a name='#r1'>Hello</a>
<p>Footnotes begin</p>
<ul>This text should be rendered right below footnote</ul>
</docbody>
这看起来很好。但是,我拥有的用于转换此 XML 文件的 XSLT 代码添加了“paragraphtext”类,它将<ul>
元素内的任何文本强制放入段落中,而不是在我需要的脚注下方。
总而言之,我需要<ul>
示例中的第二个元素保持在脚注下方,而不是按照给定的类强制进入段落(我无法更改 CSS 或任何类)。
我认为我可以做到这一点的方法是以某种方式检测第二个<ul>
元素的位置 - 尽管这两个元素具有相同的父元素,但可能有帮助的一件事是<a name="#r1">
元素仅且始终位于脚注部分之前 - 它永远无法在文档正文部分找到。
因此,我想是否有办法测试元素是否位于名称为 that的<ul>
元素之后,但该函数似乎没有参数?a
starts-with[@name, '#r1']
position()
那么,有没有办法以某种方式“检测”a
元素的位置并将其与元素的位置进行比较ul
?谢谢。
编辑:
我拥有的 XSLT 是 10 000 行代码,但这里是相关部分:
<xsl:template match="ul">
<div>
<xsl:attribute name="class">
<xsl:value-of select="'paragraphtext'" />
</xsl:attribute>
<xsl:apply-templates />
</div>
</xsl:template>
我目前得到的文字:
Lorem ipsum dolor sit amet, consectetur adipiscing elit。Donec vitae dolor cursus, aliquet purus eget, placerat augue。Morbi blandit, risus ac dignissim dapibus, lectus ipsum venenatis augue, amalesuada magna purus et quam。Curabitur tincidunt eleifend orci, et tempor nunc laoreet 在。Nullam vitae mauris nisi。脚注正文放在此处而不是在相关脚注之后。
脚注
(1) 参考文献1
(2) 参考文献2
我想得到的文字:
Lorem ipsum dolor sit amet, consectetur adipiscing elit。Donec vitae dolor cursus, aliquet purus eget, placerat augue。Morbi blandit, risus ac dignissim dapibus, lectus ipsum venenatis augue, amalesuada magna purus et quam。Curabitur tincidunt eleifend orci, et tempor nunc laoreet 在。Nullam vitae mauris nisi。
脚注
(1) 参考文献1
**Footnote body goes here - this is the correct way**
(2) 参考文献2