私はw3schools.comでxpath軸について読んでいて、ヘルプを検索しようとしていますが、実際に何を検索するかを理解するのに苦労しています。
さまざまなxmlファイルをpdfプリントに変換するために使用されるxslスタイルシートがあります。私が立ち往生している部分は、いくつかのフォーマットを変更する必要があるときに、少なくとも3つの異なるシナリオを特定したことです。2つのケースでフォーマットを変更する方法を見つけましたが、3つ目は、他の2つのハイブリッドの一種であり、1つだけが必要なときに、両方のフォーマットのセットを表示し続けます。
追加情報があれば教えてください、ありがとうございます!
シナリオ1:
<TASK>
<REVST>Some revised text
</TASK>
シナリオ2:
<LIST>
<PARA>
<REVST />Some Text <REVEND />
</PARA>
</LIST>
シナリオ3:
<TASK>
<PARA>
<REVST />Some other revised text <REVEND />
</PARA>
</TASK>
シナリオ1で機能するように見える<xsl:if test="parent::*TASK/REVST">
のは、for-eachを実行し、各「ITEM」を通過するスタイルシートの一部にこれを含めることです。シナリオ2で機能すると思われるのは、このテスト<xsl:if test="descendant::REVST">
をPARAテンプレート内に配置することです。
しかし、シナリオ3の場合、PARAテンプレートからのフォーマットのみである必要があるのに、両方が表示されることになります。
助言がありますか?または、検索用語の提案でさえありますか?どんな助けでも大歓迎です:)
学ぶべきことがたくさんあることは知っています。提供されたヘルプに感謝しますが、リビジョンの書式設定(ページの右側にあるバー)を表示しないようにする方法がまだよくわかりません。一部のテキストのみが改訂されることが示されている場合、ドキュメント全体に対して?
<LIST>
<PARA>
<REVST/>
THIS IS SOME TEXT THAT SHOULD BE MARKED BY A REVISION BAR.
<REVEND/>
</PARA>
</LIST>
このような場合、基本的にドキュメント全体のリビジョンバーを表示する必要があります。
<TASK>
<ELE1/>
<REVST/>
<ELE2/>
<TITLE>The Title</TITLE>
<ELE3>
<ELE4>
<TITLE>General</TITLE>
<LIST>
<LITEM>
<PARA>This is some paragraph text.</PARA>
</LITEM>
</LIST>
</ELE4>
</ELE3>
</TASK>
提示されたもので試してみましたが、テキストまたはPARA部分で*を追加しないと当てはまらないようでした。私はおそらくそこにも何かが欠けています。
<xsl:template match="TASK/*text()[preceding-sibling::*[1][self::REVST] and following-sibling::*[1][self::REVEND]]">
<fo:block color="red" border-right="solid black 2pt" margin-right="16pt">
<xsl:apply-templates />
</fo:block>
</xsl:template>
<xsl:template match="LIST1/*PARA/text()[preceding-sibling::*[1][self::REVST] and following-sibling::*[1][self::REVEND]]">
<fo:block color="green" border-right="solid black 2pt" margin-right="16pt">
<xsl:apply-templates />
</fo:block>
</xsl:template>
追加のアドバイスはありますか?私はまだ立ち往生しています:(