XSL 阻止复制中的新 whitespace/line return
XSL prevent new whitespace/line return in copy
在我基于文本的 XML 语料库中,我有很多不同数据的标记(使用 TEI 模式)。作为将这些文档转换为 PDF 的过程的一部分,我正在将其预处理为简化文件以供 xsl:fo 转换。在该预处理中,我通过查找标记并添加 <sup>incremented integer</sup>
.
来分配脚注编号
这样一行:
<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>
已处理:
<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>
输出这个(注意 <sup>
的新行):
<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>
结果是xsl:fo将<sup>
处理成上标时,目标和上标之间有一个space,像这样:
Item anno et die quo supra 1. P Lapassa Senior testis iuratus idem per omnia quod predictus Hugo de Mamiros.
有没有办法阻止在复制过程中引入新的 lines/carriage returns?
附加信息:我在 xsl 文档中有 <xsl:strip-space elements="*"/>
。针对 Saxon PE 9.6 和 HE 9.8 进行了测试。
提前致谢。
如果您想要缩进输出,但有些元素包含混合内容,让系统在包含的元素之前或之后插入空格是不安全的,您可以使用新的 XSLT 3.0 suppress-indentation
属性。例如,<xsl:output indent='yes' suppress-indentation='p'/>
将停止在 p
元素的内容中插入任何空格。
在我基于文本的 XML 语料库中,我有很多不同数据的标记(使用 TEI 模式)。作为将这些文档转换为 PDF 的过程的一部分,我正在将其预处理为简化文件以供 xsl:fo 转换。在该预处理中,我通过查找标记并添加 <sup>incremented integer</sup>
.
这样一行:
<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>
已处理:
<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>
输出这个(注意 <sup>
的新行):
<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>
结果是xsl:fo将<sup>
处理成上标时,目标和上标之间有一个space,像这样:
Item anno et die quo supra 1. P Lapassa Senior testis iuratus idem per omnia quod predictus Hugo de Mamiros.
有没有办法阻止在复制过程中引入新的 lines/carriage returns?
附加信息:我在 xsl 文档中有 <xsl:strip-space elements="*"/>
。针对 Saxon PE 9.6 和 HE 9.8 进行了测试。
提前致谢。
如果您想要缩进输出,但有些元素包含混合内容,让系统在包含的元素之前或之后插入空格是不安全的,您可以使用新的 XSLT 3.0 suppress-indentation
属性。例如,<xsl:output indent='yes' suppress-indentation='p'/>
将停止在 p
元素的内容中插入任何空格。