У меня есть документ XML с коллекцией новостных статей, которые были назначены нескольким категориям.Теперь мне нужно сгруппировать эти документы по категориям.Ниже приведен пример записи элемента:
<item>
<link>http://www.threelanews.com/articles/?id=50456</link>
<category>/General/</category>
<category>/Technology/</category>
<category>/Technology/Telecommunications/</category>
<category>/Technology/Information Technology/Internet/</category>
<title>Sony debuts handsets at CES</title>
<description>The Xperia S will be available globally from the first quarter of 2012.
Sony Ericsson will showcase the first handsets from...</description>
<pubDate>Tue, 10 Jan 2012 12:11:01 +0200</pubDate>
</item>
Я использую таблицу стилей XSL для преобразования документа.Для каждой группы я сделаю тест, чтобы увидеть, какие элементы принадлежат этой категории, и если в одном из элементов категории есть совпадение, статью следует добавить в html, например:
<xsl:when test="contains(category,'/General/')">
<div class="news-item" width="100%">
<div class="news-item-title" width="100%">
<a href="{$linkUrl}" target="_blank">
<xsl:value-of select="title"/>
</a>
</div>
<xsl:if test="string-length($imageUrl) > 0">
<div class="news-item-image">
<img src="{$imageUrl}" />
</div>
</xsl:if>
<div class="news-item-description">
<xsl:value-of select="description"/>
</div>
</div>
<div class="clear" />
</xsl:when>
ЗатемСтатья должна быть добавлена в «Генеральную группу».Статьи с несколькими категориями должны появляться в каждой группе, чтобы они были актуальны.Вышеприведенное утверждение будет работать для группы «Общие», но когда я пытаюсь сделать то же самое для «Технологии» или других категорий ниже, эта статья не возвращается.Я обнаружил, что это только соответствие первого элемента.Можно ли как-нибудь сопоставить все элементы категории?