いくつかの特定のタグを取り除くための最良の解決策は何かと格闘してきました。現在、私はいくつかの正規表現で繰り返し検索/置換を使用していますが、確かにもっと良い方法が必要です。xsltで直接行う方法が明確ではありません。
次の例を見てください:
<local xml:lang="en">[Some Indicator]<div class="tab"/>some more content here</local>
私はこれらのかなりの数を持っており、すべて同じ構造に従います。 [Some Indicator] は一種のリスト識別子であり、次のいずれかになります。
- 1 つ以上の数字、場合によってはドットが続く
- 1 文字、場合によってはその後にハイフンと別の文字が続く
- 特定のコードポイント範囲 (この場合は 57600 から 58607) の 1 文字
- 上記のバリエーションである他のいくつか
手動で数百回検索/置換することなく、これらすべてを取り除きたいです。xsl:analyze-string を試してみましたが、位置を気にせずにすべてを置き換えます。
いくつかの例 :
<some_nodes_above>
<local xml:lang="en">1<div class="tab"/>some more content here</local>
<local xml:lang="en">2.<div class="tab"/>some more content here</local>
<local xml:lang="fr">2-A<div class="tab"/>some more content here</local>
<local xml:lang="de"><div class="tab"/>some more content here</local>
</some_nodes_above>
になる必要があります:
<some_nodes_above>
<local xml:lang="en">some more content here</local>
<local xml:lang="en">some more content here</local>
<local xml:lang="fr">some more content here</local>
<local xml:lang="de">some more content here</local>
</some_nodes_above>
だから私は、「ローカルノードの後に特定のインジケーターとタブ div が続くのを見るたびに、インジケーターとタブ div を取り除く」のような xslt(2) スクリプトを探しています。例の完全な解決策を探しているのではなく、私を正しい方向に導くためのものです。1 つのパターンでどのように機能するかを知っていれば、残りはおそらく自分で把握できます。
前もって感謝します。