2017-12-28 38 views
2

私のテキストベースのXMLコーパスでは、(TEIスキーマを使用して)さまざまなデータのマークアップがたくさんあります。これらのドキュメントをPDFに変換するプロセスの一環として、xsl:foが変換するための単純化されたファイルに前処理しています。その前処理では、マークアップを見つけて<sup>incremented integer</sup>を追加して脚注番号を割り当てています。XSLはコピーで新しい空白/改行を防ぐ

このような行:本で処理

<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>を上付き文字に処理し、taそうのように、目標確認およびSuperscript:

アイテムアノらクオ前掲死にます。 P Lapassaシニア精巣iuratus idem per omnia quod predictus Hugo de Mamiros。

新しい行/改行がコピープロセスに導入されないようにする方法はありますか?

追加情報:<xsl:strip-space elements="*"/>がxslドキュメントにあります。 Saxon PE 9.6およびHE 9.8に対して試験された。

ありがとうございます。

+1

入力から改行がコピーされていますか?あなたが提示したコードスニペットが与えられているので、私は入力にその改行が見当たらないので、おそらく 'xsl:output indent =" yes "'を使用して導入されていると思います。 –

+0

私はあなたがそれを働かせたことは驚くべきことである - それは本当に犯人だった。余分な質問:テクニカルフォーマットで余分な空白が導入されるのはなぜですか?手動でインデントした場合、コードを読みやすくするために多くの場所にあるように、同じ問題が発生することはありません。あなたの経験の恩恵を再びお寄せいただきありがとうございます。 – idjet

+0

まあ、それは様々な要因に依存していますが、インデントのコードあなたがXSLTの内側に書くならば、あなたは最も空白の内部スタイルシートでhttps://www.w3.org/TR/xslt20/#stylesheet-strippingその結果を考慮する必要がありますデフォルトでは削除されます。ソース文書の場合、ルールはhttps://www.w3.org/TR/xslt20/#stripとは異なります。 –

答えて

1

インデントされた出力を必要とするが、含まれる要素の前後に空白を挿入することが安全でないいくつかの要素が混在している場合は、新しいXSLT 3.0 suppress-indentationプロパティで制御できます。たとえば、<xsl:output indent='yes' suppress-indentation='p'/>は、p要素のコンテンツ内に挿入されている空白をすべて停止します。

+0

ありがとうございます。 xslの処理オプションの深さは、誰かが学ぶために少しばかり気になります。 – idjet

+0

はい、学ぶべきことがたくさんあります。だからこそこのサイトが存在し、なぜ私は自分の本を書いたのです。 –

関連する問題