XSLT: выберите узел, который начинается с предопределенного списка элементов - PullRequest
1 голос
/ 14 октября 2010

Мы вводим XML, как показано ниже:

<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

Что нам нужно сделать, это выбрать уникальную запись, которая начинается с предопределенного настраиваемого списка строк, например, если наш предопределенный список имеет вид

Folder2xx, Folder18ppp, Folder212aaa

Я хотел бы отображать только как вывод

Folder2xx\Subfolder1

Оптимальная вещь будет четной:

Folder2xx\Subfolder1 (linked 3 times)

, но я был бы очень признателен за помощь в выборе уникального элемента.Это, к сожалению, слишком сложно для моих знаний о XSLT, кто-то может помочь?Наша система поддерживает XSLT 2.0 и XPATH 2.0

, большое спасибо!

Mario

1 Ответ

0 голосов
/ 14 октября 2010

Использование :

MT[@N='folder']
     /@V[substring-before(.,'\')
        =
         ('Folder2xx', 'Folder18ppp', 'Folder212aaa')
        ]
...