ある時点で次のような大きなテキスト ファイルがあります。
<w>
<randomnode>
<pa/>
<pa>
Keyword1 sometxt1 <thing>abc</thing>: blabla
</pa>
<stuff>abc</stuff>
<pa>
just blabla
</pa>
<pa>
Keyword2 othertxt2: blabla
</pa>
<pa>
just blabla
</pa>
<pa>
just blabla
</pa>
<pa>
Keyword1 xxx: and blabla
</pa>
</randomnode>
</w>
この結果を取得したい:
<w>
<randomnode>
<k attr="keyword1 sometxt1">
<p>
<s>
Keyword1 sometxt1 <thing>abc</thing>:
</s>
blabla
</p>
<stuff>abc</stuff>
<p>
just blabla
</p>
</k>
<k attr="keyword1 othertxt2">
<p>
<s>
Keyword2 othertxt2:
</s>
blabla
</p>
<p>
just blabla
</p>
<p>
just blabla
</p>
</k>
<k attr="keyword1 xxx">
<p>
<s>
Keyword1 xxx:
</s>
and blabla
</p>
</k>
</randomnode>
</w>
<pa>
英語で:そのノードの text() にキーワード 1、キーワード 2、またはキーワード 3 があるときはいつでも、それぞれを調べてグループ化したいと思います。<s>
のコンテンツの分割は別のテンプレートで行われ、正しく:
グループ化できれば機能するはずです。<pa>
私はこれまでのところこれを持っています:
<xsl:for-each-group select="$randomnode/*[normalize-space(.)!='']"
group-starting-with="pa/text()[contains(., 'keyword1')
or contains(., 'keyword2') or contains(., 'keyword3')]">
問題は、何も選択されていないことであり、text() が原因であると感じています...
text() で group-starting-woth を使用できますか? 完全に異なることをする前に、これを使用して拡張/修正したいと思います..