XSLT 2.0
我项目的最终目标是输出一个网页,该网页根据两个学术标准向用户提供同一中世纪文档的两个视图,用户可以在两个视图之间使用按钮进行切换(请参见18个月的概念证明)以及here之前的许多迭代)。
这要求我经常从单个XSLT模板调用中输出两个HTML段,以它们的@class
来区分,它们的值为'inter'或'diplo'。这开始对要使用多个模板的“命名实体”(人物和地点)产生负面影响。
例如,在https://xsltfiddle.liberty-development.net/3NzcBtW,有人发现我对待<persName>
的第一个实例:
<persName nymRef="#Bernard_Cogota_MSP-AU" role="dep">B<supplied reason="expname">ernardus</supplied> Cogata</persName>
以便输出:
<a href="http://foo.com/person/Bernard_Cogota_MSP-AU" class="inter">Bernardus Cogata</a>
<span class="diplo">Bernardus Cogata</span>
但是,如果我添加此模板(见https://xsltfiddle.liberty-development.net/3NzcBtW/1):
<xsl:template match="tei:supplied">
<span class="supplied inter"><xsl:apply-templates/></span>
<span class="supplied diplo">[<xsl:apply-templates/>]</span>
</xsl:template>
它将两个范围输出到两个<persName>
输出,这将导致javascript和css产生不正确的显示结果:
<a href="http://foo.com/person/Bernard_Cogota_MSP-AU" class="inter">B<span class="supplied inter">ernardus</span><span class="supplied diplo">[ernardus]</span> Cogata</a>
<span class="diplo">B<span class="supplied inter">ernardus</span><span class="supplied diplo">[ernardus]</span> Cogata</span>
我想知道XSLT中是否有一种方法可以输出:
<a href="http://foo.com/person/Bernard_Cogota_MSP-AU" class="inter">B<span class="supplied inter">ernardus</span> Cogata</a>
<span class="diplo">B<span class="supplied diplo">[ernardus]</span> Cogata</span>
我是否应该考虑将文档正文(当前为)转储到两个单独的<div class="inter">
和<div class="diplo">
中?可能使用modes
来构建单独的<div>
吗?
备用方法是为每个离散的模板输出设置唯一的类,然后使用大量类而不是整个组来管理切换效果。但令我惊讶的是,这是一种不雅的解决方案,可向浏览器输出更多的内容。
非常感谢。