Xml XSL防止副本中出现新的空格/换行符

Xml XSL防止副本中出现新的空格/换行符,xml,xslt,saxon,tei,Xml,Xslt,Saxon,Tei,在我基于文本的XML语料库中,我有很多不同数据的标记(使用TEI模式)。作为将这些文档转换为PDF的过程的一部分,我正在将其预处理为一个简化文件,以便xsl:fo进行转换。在预处理过程中,我通过查找标记并添加递增整数来分配脚注编号 像这样的一句话: <p> <seg> <date type="deposition_date">Item anno et die quo supra</date>. <persName>P Lap

在我基于文本的XML语料库中,我有很多不同数据的标记(使用TEI模式)。作为将这些文档转换为PDF的过程的一部分,我正在将其预处理为一个简化文件,以便xsl:fo进行转换。在预处理过程中,我通过查找标记并添加递增整数来分配脚注编号

像这样的一句话:

<p>
  <seg>
    <date type="deposition_date">Item anno et die quo supra</date>. <persName>P Lapassa Senior</persName> testis iuratus idem per omnia quod predictus <persName>Hugo de Mamiros</persName>.
  </seg>
</p>

上文第5条和第5条。P拉帕萨的高级睾丸是由乌戈·德·马米罗斯预测的。

处理此问题:

<xsl:template match="tei:date">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy><sup><xsl:number count="date[@type='deposition_date'" from="tei:p" format="1" level="any"/></sup>
</xsl:template>

输出此项(注意
的新行):


项目注释和说明见上文
1.P拉帕萨的高级睾丸是由乌戈·德·马米罗斯预测的。

结果是,当xsl:fo将
处理为上标时,目标和上标之间有一个空格,如下所示:

上文第1条的注释和说明。P拉帕萨的高级睾丸是由乌戈·德·马米罗斯预测的

是否有办法阻止在复制过程中引入新行/回车

附加信息:我在xsl文档中找到了
。针对萨克森PE9.6和HE9.8进行测试


提前感谢。

如果您想要缩进输出,但有些元素的内容混合,让系统在包含的元素之前或之后插入空格是不安全的,您可以使用新的XSLT 3.0
抑制缩进属性来控制这一点。例如,
将停止在
p
元素的内容中插入任何空格。

这是从输入复制的换行符吗?考虑到您提供的代码片段,我没有看到输入中的换行符,我宁愿假设它可能是通过使用
xsl:output indent=“yes”
引入的。我发现您解决了这一问题,这是非常了不起的——它确实是罪魁祸首。额外问题:为什么技术格式会引入额外的空白?如果我手动缩进,就像我在许多地方为了便于阅读代码而做的那样,它不会带来同样的问题。再次感谢您给我们的经验带来的好处。这取决于各种因素,但是如果您在XSLT中编写代码缩进,那么您必须考虑在默认情况下,在样式表中的大多数空白中的结果会被剥离。对于源文件,规则是不同的。非常感谢。对于学习xsl的人来说,xsl中处理选项的深度有点令人难以置信。是的,有很多东西需要学习。这就是这个网站存在的原因,也是我写这本书的原因。
<p>
  <seg>
    <date type="deposition_date">Item anno et die quo supra</date>
    <sup>1</sup>. <persName>P Lapassa Senior</persName> testis iuratus idem per omnia quod predictus <persName>Hugo de Mamiros</persName>.
  </seg>
</p>