「まだ一致/処理されていないノード」を一致させることは可能ですか? 現在の順序が重要であるため、スタイル シートを巨大な for-each/Choose ステートメントにしないことが望ましいです。
プロジェクトはまだ開発中であり、ライブ環境で既に使用されているため、コードは簡単に言えば、取得しているライブ データに応じて急速に変化する状態にあります。XML から FO を介して PDF ドキュメントを生成しています。まだ知らないノードが含まれている可能性があり、XSL-FO 変換に「フェイルオーバー」命令を追加して、ドキュメントの先頭にあるすべての不明なノードを明るい赤で配置したいと考えています。発見をスピードアップします。
データを処理する必要があるため、驚きのノードを無視することはできません。「孤立した」データをより早く見つけることができれば、より迅速に適切に処理してドアの外に出すことができます。
さまざまな priority="" 設定をいじってみまし<xsl:template match="*">...</xsl:template>
たが、もちろんすべてのノードに適用されます。
たとえば、これらの XML ブロックが正しい出力順序で来るとは限らないため、これを 1 つのセクションに含める場合があります。(コード ブロックの書式設定が機能しません。4 つのスペースでインデントしても何も起こりません。申し訳ありません :(
<xsl:template match="AccountSummary">
<fo:block margin-left="2" space-before="1" space-after="1" text-align="center">
<xsl:apply-templates select="Label"/>
</fo:block>
<xsl:apply-templates select="AccountInfo"/>
<xsl:apply-templates select="AccountProfile"/>
<xsl:apply-templates select="ChangeInValueOfAccounts"/>
<!-- ... more goes here -->
</xsl:template>
私は次のようなことをしたいと思います
<xsl:template match="AccountSummary">
<fo:block margin-left="2" space-before="1" space-after="1" text-align="center">
<xsl:apply-templates select="Label"/>
</fo:block>
<xsl:apply-templates select="AccountInfo"/>
<xsl:apply-templates select="AccountProfile"/>
<xsl:apply-templates select="ChangeInValueOfAccounts"/>
<!-- ... more goes here -->
<xsl:for-each select="not otherwise matched">
<!-- call zomgRED template -->
</xsl:for-each>
</xsl:template>
理想的にはzomgRED
s を一番上にしたいのですが、一番下でもうまくいきます。または、テキスト マーカーでフラグを立てます。静かにそれを食べるのではなく、最終的なドキュメントのテキストを吐き出すためのもの.