2010-05-19 50 views
0

我試圖轉換其內容是csv標識符列表的XML元素,確切的形式並不重要。我想排除每個包含字符「/」的項目。我想出的最好的是在XSLT中篩選CSV列表

translate(./someElement, ",*/*", "") 

但是這至少有兩個問題;我很確定xsl不接受通配符,「,」是xpaths中的非法字符。

是否有直接的方法來做這種事情?

+0

你能不能給我們你想要的輸入和輸出的例子嗎?我不完全確定我在這裏掌握了這個問題。 如果你問我認爲你可能是什麼,那麼也許這是:http://stackoverflow.com/questions/136500/does-xslt-have-a-split-function可以幫助;基本的想法是以逗號字符遞歸地分割字符串,但只輸出那些沒有斜線的子字符串(用contains()進行檢查)。 – 2010-05-19 10:21:36

+0

哦,另外,如果您使用的是XSLT 2,看看tokenize():http://www.xml.com/lpt/a/1205 – 2010-05-19 10:29:19

+0

澄清:給定一個包含文本內容的元素,它實際上是一個csv項目列表,如 a,aa, a/b,1,1/2,... 我想刪除所有包含/的項目,在此情況下爲: a,aa,1 鏈接的示例似乎沿着右行,謝謝。儘管在上下文中我是這樣做的,但使用引用已存在的VB函數的擴展對象更容易。 – 2010-05-19 11:55:00

回答

0

在XPath 2,你可以說:

tokenize($s,",")[not(contains(.,"/"))]