0

XSLT: 属性が false に設定されている場合、要素とその子要素のブランチ全体のデータを無視してスキップしますか?

etc などを含む XML ドキュメントがありますDocument > Sections > Sub Sections > Items > Sub Items > Super Subs

ここで、すべてのレベルのすべての要素に共通として設定している 1 つの共通の「ブール」属性または属性セットは、可視性または可視性を表す「V」です。つまり、ドキュメントのセクション全体を非表示/スキップまたは非表示にすることができます。

これはブール値であるため、1 または 0、つまり True/False を保持できます。

1 つのブール属性をフラグとして変更するだけで、非表示/未処理で無視する必要がある場合は、任意の要素とその子要素のブランチ全体IGNORESKIP処理および出力できるようにしたいと考えています。

これを行うための良い、クリーンで効率的な方法は何でしょうか?

これを XML ドキュメント全体のすべてのレベルで要素のセット全体にグローバルに適用できる共通の Xpath 式はありますか?

これを実装して実行するためのすべての提案と代替方法を歓迎します.

例: XML:

<Document> 
 <Section v="1">Data 
<SubSection v="1">SS1..</SubSection>
<SubSection v="0">SS2..</SubSection>
 </Section> 
 <Section v="0"></Section> 
 <Section v="1"></Section>
</Document>
4

1 に答える 1

2

入力ツリーを通常の<xsl:appy-templates/>再帰ウォークでドキュメントを処理している場合は、必要なのは

<xsl:template match="*[@V='0']" priority="10"/>

これは、何も出力せず、要素の子を処理しないことを示していますV="0"

于 2013-11-01T17:43:05.903 に答える