2012-10-31 22 views
0

我希望使用XQuery的匹配函數來處理以2個字符串爲參數的XML文檔中特定元素的值。我需要將元素的文本值作爲參數傳遞給函數。但是,當我使用$標題/文本(),它不接受它作爲字符串,並給出了一個錯誤檢索文本值並將其用作函數中的參數xquery

+2

您可以添加再現您所看到的確切的錯誤的一個小例子?另外,請將確切的錯誤添加到您的問題。 –

回答

1

我猜(由於缺乏更多的信息.​​.....),你打算做這樣的事情:

let $doc := <doc> 
    <title>Abc</title> 
    <title>Cde</title> 
    </doc> 
for $title in $doc/title 
return matches($title, "Cde") 

,我想不是,你不喜歡的東西:

let $doc := <doc> 
    <title>Abc</title> 
    <title>Cde</title> 
    </doc> 
     (: oh no! :) 
let $title := $doc/title 
return matches($title, "Cde") 

這導致含 text()項目序列的$title變量;但作爲fn:contains()只接受xs:string?,而不是xs:string+它的參數會失敗,抱怨(例如,在BaseX)認爲:

[XPTY0004] Single item expected, (<title>...</title>, <title>...</title>) found. 
+0

+1爲非常合理的猜測。 –

+0

謝謝DevNull!我們會看看Gopal是否會盡快提供更多信息( - : – michael

相關問題