У меня возникли проблемы при попытке настроить шаблон для решения этой ситуации:
Мой XML выглядит так:
<root>
<recordset name="companies">
<record>
<id>1</id>
<description>Company 1</description>
</record>
<record><id>2</id><description>Company 2</description></record>
...
<record><id>n</id><description>Company n</description></record>
</recordset>
<gruppi>
<supplier>
<agreement>1</agreement>
<company>
<id>3</id>
<description>Compoany 3</description>
</company>
<company>
<id>7</id>
<description>Company 7</description>
</company>
</supplier>
... <!-- a lot of supplier --> ...
<supplier>
<agreement>3</agreement>
<company>
<id>1</id>
<description>Company 1</description>
</company>
<company>
<id>18</id>
<description>Company 18</description>
</company>
</supplier>
</gruppi>
</root>
Моя цель - создать шаблон, способный выполнять следующую обработку: для каждого поставщика в группе я хочу вывести список всех записей в пределах набора записей name = "companies", КРОМЕ для записи, идентификатор которой уже содержится в id элемент потомок текущего элемента поставщика.
Другими словами: для каждого поставщика я должен создать набор опций html, перечисляющий все компании (идентификаторы в качестве значений), не включая компании, уже включенные в поставщика
Я пытался использовать xsl: key и некоторую рекурсию, но я нашел эту задачу довольно сложной, и у меня заканчиваются идеи. У кого-нибудь есть подсказка для решения этой проблемы?
Спасибо за любую помощь!
@ polishchuk: входной файл xml довольно большой, поэтому я извлек интересующую меня структуру с небольшим количеством общих данных. По поводу вывода я ищу что-то вроде этого:
<h1>Agreement: 1</h1>
<select>
<option value="1"></option>
.... <!-- WITHOUT values 3 and 7 -->
<option value="N"></option>
</select>
<h1>Agreement: 3</h1>
<select>
<option value="1"></option>
.... <!-- WITHOUT values 1 and 18 -->
<option value="N"></option>
</select>