xquery表达式仅在其中包含特定字符串时才返回链接文本

时间:2012-06-27 21:12:26

标签: xml xquery

我想从XML文档中提取一些链接(链接的格式与html页面相同)。

现在,例如链接是“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用于此目的。

最后,我想提取链接网址以及链接文字......

1 个答案:

答案 0 :(得分: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}"/>