2012-04-05 50 views
1

我试图使用XPath count函数来确定下面的查询有多少元素返回的XPath计数功能

doc("courses.xml") 
count(//Course[contains(Description,"Cross-listed")]) 

下面的代码返回2个当然元素

doc("courses.xml") 
//Course[contains(Description,"Cross-listed")] 

但是当我尝试使用上面的计数函数返回“2”我得到以下错误。在#doc XPST0003 XQuery的语法错误( “courses.xml”) 计数(//#: 意外标记 “(” 超出查询的端 静态错误

上tmpDfWgJ7.xq的第2行第1列的错误(收费)查询

我怎样才能解决这个?

回答

2

计数(DOC( “courses.xml”)//课程[含有(说明, “交叉上市”)])

0

使用

count(doc("courses.xml") //Course[contains(Description,"Cross-listed")]) 

或者什么可能是更具可读性

doc("courses.xml")/count(.//Course[contains(Description,"Cross-listed")]) 
0

这将工作过。您只需在计数前添加/之前:

doc("courses.xml") 
/count(//Course[contains(Description,"Cross-listed")])