У меня есть большой текстовый файл, который в каком-то момент выглядит следующим образом:группы, где текст() содержит ключевое слово
<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>
На английском языке: I хотите пройти через каждый <pa>
и группировать их всякий раз, когда в тексте() этого узла есть ключевое слово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')]">
Проблема IST, что ничего не выбрано, и я есть ощущение, что это из-за текста() ...
Могу ли я использовать группу starting- в тексте() вообще? Я действительно хотел бы использовать это и расширить/исправить его, прежде чем сделать что-то другое .. укомплектовать
Спасибо, теперь мне не нужно беспокоиться об этой части ... – Beehgr