2017-03-07 21 views
1

私はそれを正しく行う方法を理解しようとしています。私はコード内の処理命令を使用しようとしましたが、何とか無視されているようです。テキストでXSL-FOに空白行を挿入するには?

:テンプレート用として

end of a paragraph.<?linebreak?></p> 

は、私が試した:

<xsl:template match="processing-instruction('linebreak')"> 
    <fo:block> 
     <xsl:apply-templates/> 
     <fo:leader/> 
    </fo:block> 
</xsl:template> 

それとも単にテスト目的のために:

<xsl:template match="processing-instruction('linebreak')"> 
    <fo:block>XXXX</fo:block> 
</xsl:template> 

ありませんが、私が何を重要、テンプレート使用されることはありません。

私はeXist-dbアプリ(3.0RC1)の中で使っていますが、これはeXist-dbには関係していないと思います。 FOP 1.1があります。私はサクソン版についてはわかりません。

+0

テンプレートは決して実行されないので、最初の問題はXSLTです。しかし、残りのスタイルシートを知らなくても解くのは難しいでしょう。 – lfurini

+0

ありがとう、私はより合理的なサンプルを提供しようとします。問題はそれが大きなプロジェクトの一部であることです。 –

+1

以下の両方の答えが正しいです。 *あなたの質問に対する答えは、最初にそれらを挿入するのではなく、スペース(最初の回答)を使ってXSL FOエンジンで処理する必要があります。そうしなければ、彼らは適切に治療され、崩壊することになります。 –

答えて

2

ありませんが、私は、テンプレートが使用されることはありません何をすべきか問題になります。

この問題については、親要素(例では<p>)と一致するテンプレートがは、テンプレートを適用するときに処理命令を黙って無視します。考慮すべき処理命令のために

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 

    <xsl:template match="* | @*"> 
    <xsl:copy> 
     <!-- this only processes elements, attributes and text nodes! --> 
     <xsl:apply-templates select="* | @* | text()"/> 
    </xsl:copy> 
    </xsl:template> 

    <xsl:template match="processing-instruction('linebreak')"> 
    XXXXX 
    </xsl:template> 

</xsl:stylesheet> 

、テンプレートマッチング:

要素が処理されるとき、それらのマッチングテンプレートが実行されることはないので、例えば、この疑似識別スタイルシートは、処理命令を無視要素は、明示的にあまりにもそれらにテンプレートを適用する必要があります。はヲ<xsl:apply-templates/>を使用していないでしょう

<xsl:template match="* | @*"> 
    <xsl:copy> 
     <xsl:apply-templates select="* | @* | text() | processing-instruction()"/> 
    </xsl:copy> 
    </xsl:template> 

に留意されたいです。 rkも、処理命令や属性、要素とテキストノードだけを選択するものではありません。

+1

ありがとう、これはもちろん、技術的には答えです。しかし、Hobbesは実際には代わりにいくつかの演奏命令を使用する方が良いかもしれないという事実については正しかった。 –

3

伝統的に、段落の最後に改行を挿入しません。代わりに、パラグラフを含むfo:ブロック上のspace-below = "12pt"。

改行は、不要な場合でも常に挿入されます(たとえば、段落がページの一番下に配置され、改行が次のページに折り返される場合など)。それはページの下部に表示された場合、条件は、ので、このスペースが崩壊することになる。これは良く見えるレイアウトになります。

+1

ありがとうございました。私はいくつかの演奏指導が必要な場合に処理命令を使用する理由を考えています。 –

関連する問題