Мы имеем на входе XML-как следующее:XSLT: выберите узел, который начинается с заранее определенным списком элементов
<R>
<MT N="folder" V="Folder1\Subfolder1" />
<MT N="folder" V="Folder2xx\Subfolder1" />
<MT N="folder" V="Folder3yyyy\Subfolder1" />
<MT N="folder" V="Folder4zzzz\Subfolder1" />
</R>
В нашей XSLT, который выполняет отображение, запись:
<xsl:value-of select="MT[@N='folder']/@V"/>
отображает:
Folder1\Subfolder1 Folder2xx\Subfolder1 Folder3yyyy\Subfolder1 Folder4zzzz\Subfolder1
Нам нужно достичь уникальной записи, которая начинается с предопределенного настраиваемого списка str например, если наш предопределенный список
Folder2xx, Folder18ppp, Folder212aaa
Я хотел бы показать, как выход только
Folder2xx\Subfolder1
Оптимальная вещь была бы даже:
Folder2xx\Subfolder1 (linked 3 times)
, но я был бы очень признателен помощь по выбор уникального элемента. Это, к сожалению, слишком сложно для моих знаний о XSLT, может кто-то помочь? Наша система поддерживает XSLT 2.0 и XPATH 2.0
спасибо большое!
Марио
Хороший вопрос, +1. См. Мой ответ для краткого 1-линейного решения XPath 2.0. :) –
Какова логика '(связанная 3 раза)'? – 2010-10-14 18:34:53
@Alejandro: на самом деле список элементов «папки» - это список реальных местоположений и ссылок на них, поэтому (связанный 3 раза) - это количество элементов, которые соответствуют шаблонам реальных местоположений. Извините, что было неясно, но это было слишком мне очень сложно, я не ожидал такого ясного (и быстрого!) Решения ... – Mario