XML和这一问题的XSLT 2.0文件在被发现https://xsltfiddle.liberty-development.net/6qVRKwX/3
我试图“移动”的元素提前输出HTML的部分。 这个元素是在创建转型的第一部分使用) @mode
以脚注的数字插入文本。 所述第一模式fn-add-marker
产生<fn-marker/>
保持脚注号码。 第二模式number
然后插入递增脚注号码。 所有这一切工作正常(通过到线52和68在XSLT小提琴然后后)。
现在我需要“移动”一个元素产生它在模式上的同级元素。 我已经结合了这与HTML输出:最终的想法是,元素<tei:seg>
被转换成HTML <p>
使得这样的:
<seg type="dep_event">text</seg><fn-marker>incremented no.</fn-marker>
现在变成这个HTML(其中seg
= p
,和fn-marker
= sup
:
<p>text<sup>incremented no.</sup></p>
即。 其中一个条件被满足时,脚注被带到一个同级元素内将被包含在<p>
我插入的代码(下面)的工作原理为4层所需的步骤3来完成这个动作。 这似乎与步骤3相关联的代码不会在定位值<fn-marker/>
但是,如果我删除了这一切,值实际上是在那里! 这让我觉得这是模式的问题。
下面的代码做到这一点:
输出的每个实例
<tei:seg @type="dep_event>"
成<p>
作品创建
<sup>
内的<seg>
满足兄弟条件作品的文本()内容复制
<fn-marker>
到<sup>
满足兄弟条件不起作用破坏旧
<fn-marker>1</fn-marker>
作品
参照行号在https://xsltfiddle.liberty-development.net/6qVRKwX/3 :
行56-63:
<xsl:template match="tei:seg[@type='dep_event']">
<p>
<xsl:apply-templates/>
<xsl:if test="following-sibling::node()[1][self::tei:fn-marker]">
<!-- next line of code does not find a value in /text() -->
<sup><xsl:value-of select="./following-sibling::node()[1][self::tei:fn-marker/]text()"/></sup>
</xsl:if>
</p>
</xsl:template>
线66:
<xsl:template match="tei:fn-marker[preceding-sibling::node()[1][self::tei:seg[@type='dep_event']]]"/>
提前致谢。