2012-06-27 69 views
0

我想從XML文檔中提取一些鏈接(鏈接的格式與html頁面上的鏈接相同)。xquery表達式只返回一個鏈接文本,如果它包含一個特定的字符串

現在例如一個鏈接是「http://xyz.com/start/tyu/a.html」,另一個是「http://ert.com/tyu/b.html」,而第三個鏈接是「http://asdf.com/ghjk/c.html」

從上面的3個鏈接(我與我在FLWOR表達式中使用for子句)...我只想要包含在內部的鏈接他們是一個字符串「tyu」被選中 - 我想爲此使用子字符串,但子字符串需要指定開始和結束位置 - 而在我的情況下,我不知道所需的字符串將在哪個位置。

如何在這種情況下進行子字符串匹配,即不知道子字符串出現的確切位置?爲此我可以使用XQuery 1.0。

最後,我想提取鏈接的URL,以及鏈接的文字...

回答

1

這是fn:contains工作:

for $link in 
    (
    <a href="http://xyz.com/start/tyu/a.html">first link</a>, 
    <a href="http://ert.com/tyu/b.html">second link</a>, 
    <a href="http://asdf.com/ghjk/c.html">third link</a> 
    ) 
    where contains($link/@href, "tyu") 
    return <link url="{$link/@href}" text="{$link}"/> 
相關問題