- blogs:
- cles::blog
2014/05/23

XSLT でテキストノードの出力を止めるには

久々にちょっと xsl を書いたらビルトインテンプレートの部分でハマってしまったので、忘れないようにメモ。
XSLT には仕様にビルトインテンプレートというものが含まれているので、特に何も書かなくてもテキストノードの部分は最終結果に出力されます。
これについては 5.8 Built-in Template Rules で下記のように書かれています。
5.8 Built-in Template Rules - XSL Transformations (XSLT)
There is also a built-in template rule for text and attribute nodes that copies text through:
<xsl:template match="text()|@*"> <xsl:value-of select="."/> </xsl:template>
場合によってはこの挙動が邪魔なことがあるのですが、このビルトインテンプレートを削除することはできません。ただし、このビルトインテンプレートは他のすべてのテンプレートよりも優先順位が低く設定されているので、明示的にルールを上書きすれば無効化することはできるようになっています*1。そんなわけで、こんな感じのルールをテンプレートに付け足して事なきを得ました。
<xsl:template match="text()|@*" />
- *1: The built-in template rules are treated as if they were imported implicitly before the stylesheet and so have lower import precedence than all other template rules. Thus, the author can override a built-in template rule by including an explicit template rule.
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/6736
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(112109)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110745)
3 . 年次の人間ドックへ(110350)
4 . 2023 年分の確定申告完了!(1つめ)(109903)
5 . 三菱鉛筆がラミーを買収(109802)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110745)
3 . 年次の人間ドックへ(110350)
4 . 2023 年分の確定申告完了!(1つめ)(109903)
5 . 三菱鉛筆がラミーを買収(109802)
cles::blogについて
Referrers