XSLT:选择以预定义元素列表开头的节点

时间:2010-10-14 18:12:45

标签: xslt xpath xslt-2.0

我们输入的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

非常感谢!

马里奥

1 个答案:

答案 0 :(得分:0)

使用

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