所以,这篇文章的标题可能有点误导人,但这是我能想到的最好的标题。我正在处理一个使用TEI对文本进行编码的项目。我的当前工作要求之一就是编写XSL转换将XML编码的文本呈现为HTML。大部分都没有问题,但是我在以下问题上遇到了困难:
<l>There is <delSpan spanTo="A1"/>deleted text spanning</l>
<l>multiple lines here.<anchor xml:id="A1"/> More text...</l>
或者,在其他情况下:
<delSpan spanTo="A2"/>
<l>Several deleted lines -- the delspan marker can appear </l>
<l>outside of an l element.... </l>
<anchor xml:id="A2"/>
(如果你对TEI不熟悉:l=一行文本;delSpan=跨越多行、页或更小单元的删除文本范围。)
目标是在delSpan(A1)和其相应的锚点(A1)之间显示文本,“在此跨越多行的删除文本”并使用一些格式来指示删除(例如,text-decoration="line-through")。现在,有一个“l”元素的模板,它处理大多数文本格式化,或者至少调用其他模板来完成它。
但这些单例标记是一个反常现象;所有其他格式/标记都是通过实际包含它们所需格式化的文本的标记来完成的。我是否正确地认为我需要在“l”模板中处理delSpan和anchor元素?最优雅的方法是如何解决这个问题并处理伪重叠元素?如果我没有提供足够的信息或者这是一个初学者的问题,对不起。我主要是C/C++程序员,很少有XSLT经验,所以我感谢任何建议。