此xquery脚本中的语法错误是什么?
我是XQuery的初学者,尝试做一些简单的练习来学习它。但我试图组合的这个最新查询拒绝运行,这给了我一个语法错误 这是我的XQuery:此xquery脚本中的语法错误是什么?,xquery,Xquery,我是XQuery的初学者,尝试做一些简单的练习来学习它。但我试图组合的这个最新查询拒绝运行,这给了我一个语法错误 这是我的XQuery: <HTML> <HEAD><TITLE>Alphabetical Cities Lists</TITLE></HEAD> <BODY> { for $indcode in (65 to 70) let $indlet := codepoints-to-string($indcode
<HTML>
<HEAD><TITLE>Alphabetical Cities Lists</TITLE></HEAD>
<BODY>
{
for $indcode in (65 to 70)
let $indlet := codepoints-to-string($indcode)
return
<H1> {$indlet} LIST </H1>
{
for $cit in doc("mydoc.xml")/CITIES/ENTITY
where starts-with($cit/NAME,$indlet)
order by $cit/NAME
return <LI>{$cit/NAME}</LI>
}
</OL>
}
</BODY>
</HTML>
按字母顺序排列的城市名单
{
对于$indcode in(65至70)
let$indlet:=指向字符串的代码点($indcode)
返回
{$indlet}列表
{
对于doc中的$cit(“mydoc.xml”)/CITIES/ENTITY
其中以($cit/NAME,$indlet)开头
按$cit/名称订购
返回{$cit/NAME}
}
}
这是我的XML文件mydoc.XML的一个子集:
<CITIES>
<ENTITY>
<NAME>Hastings</NAME>
<CITYCOD>230</CITYCOD>
<CNTYCOD>01</CNTYCOD>
</ENTITY>
<ENTITY>
<NAME>Tilden</NAME>
<CITYCOD>487</CITYCOD>
<CNTYCOD>02</CNTYCOD>
</ENTITY>
<ENTITY>
<NAME>Alliance</NAME>
<CITYCOD>008</CITYCOD>
<CNTYCOD>07</CNTYCOD>
</ENTITY>
<ENTITY>
<NAME>Hemingford</NAME>
<CITYCOD>236</CITYCOD>
<CNTYCOD>07</CNTYCOD>
</ENTITY>
<ENTITY>
<NAME>Ainsworth</NAME>
<CITYCOD>003</CITYCOD>
<CNTYCOD>09</CNTYCOD>
</ENTITY>
<ENTITY>
<NAME>Kearney</NAME>
<CITYCOD>269</CITYCOD>
<CNTYCOD>10</CNTYCOD>
</ENTITY>
<ENTITY>
<NAME>Oakland</NAME>
<CITYCOD>358</CITYCOD>
<CNTYCOD>11</CNTYCOD>
</ENTITY>
<ENTITY>
<NAME>Eagle</NAME>
<CITYCOD>159</CITYCOD>
<CNTYCOD>13</CNTYCOD>
</ENTITY>
</CITIES>
黑斯廷斯
230
01
蒂尔登
487
02
联盟
008
07
海明福
236
07
安斯沃思
003
09
卡尼
269
10
奥克兰
358
11
鹰
159
13
我想让它做的是打印出一个简单的HTML文档,其中包含几个城市名称的列表,以字母开头(a到F)
但是,当我尝试在上运行此功能时,会出现以下错误:
Query:,第9行第6列:[XPST0003]语法错误,意外的“{”,应为“}”
我不知道它为什么这么说。我检查了又检查,但我的花括号看起来都很匹配。有人知道问题出在哪里吗?谢谢。您在第9行的{之前忘记了一个
因此,它应该是:
<HTML>
<HEAD><TITLE>Alphabetical Cities Lists</TITLE></HEAD>
<BODY>
{
for $indcode in (65 to 70)
let $indlet := codepoints-to-string($indcode)
return
<H1> {$indlet} LIST </H1>
<OL>
{
for $cit in doc("mydoc.xml")/CITIES/ENTITY
where starts-with($cit/NAME,$indlet)
order by $cit/NAME
return <LI>{$cit/NAME}</LI>
}
</OL>
}
</BODY>
</HTML>
按字母顺序排列的城市名单
{
对于$indcode in(65至70)
let$indlet:=指向字符串的代码点($indcode)
返回
{$indlet}列表
{
对于doc中的$cit(“mydoc.xml”)/CITIES/ENTITY
其中以($cit/NAME,$indlet)开头
按$cit/名称订购
返回{$cit/NAME}
}
}
您在第9行的{之前忘记了a
因此,它应该是:
<HTML>
<HEAD><TITLE>Alphabetical Cities Lists</TITLE></HEAD>
<BODY>
{
for $indcode in (65 to 70)
let $indlet := codepoints-to-string($indcode)
return
<H1> {$indlet} LIST </H1>
<OL>
{
for $cit in doc("mydoc.xml")/CITIES/ENTITY
where starts-with($cit/NAME,$indlet)
order by $cit/NAME
return <LI>{$cit/NAME}</LI>
}
</OL>
}
</BODY>
</HTML>
按字母顺序排列的城市名单
{
对于$indcode in(65至70)
let$indlet:=指向字符串的代码点($indcode)
返回
{$indlet}列表
{
对于doc中的$cit(“mydoc.xml”)/CITIES/ENTITY
其中以($cit/NAME,$indlet)开头
按$cit/名称订购
返回{$cit/NAME}
}
}
这是一个常见的错误
您需要在
和
节点之间放置一个
单个节点是一个XQuery表达式(就像直接元素构造函数中的多个节点一样)。返回表达式必须是一个表达式。在这种情况下,您希望返回两个节点。每个节点都是单个项,因此为了返回它们,您需要按顺序连接两个节点
查询如下所示:
<HTML>
<HEAD><TITLE>Alphabetical Cities Lists</TITLE></HEAD>
<BODY>
{
for $indcode in (65 to 70)
let $indlet := codepoints-to-string($indcode)
return
(<H1> {$indlet} LIST </H1>,
<OL>
{
for $cit in doc("mydoc.xml")/CITIES/ENTITY
where starts-with($cit/NAME,$indlet)
order by $cit/NAME
return <LI>{$cit/NAME}</LI>
}
</OL>)
}
</BODY>
</HTML>
按字母顺序排列的城市名单
{
对于$indcode in(65至70)
let$indlet:=指向字符串的代码点($indcode)
返回
({$indlet}列表,
{
对于doc中的$cit(“mydoc.xml”)/CITIES/ENTITY
其中以($cit/NAME,$indlet)开头
按$cit/名称订购
返回{$cit/NAME}
}
)
}
这是一个常见的错误
您需要在
和
节点之间放置一个
单个节点是一个XQuery表达式(就像直接元素构造函数中的多个节点一样)。返回表达式必须是一个表达式。在这种情况下,您希望返回两个节点。每个节点都是单个项,因此为了返回它们,您需要按顺序连接两个节点
查询如下所示:
<HTML>
<HEAD><TITLE>Alphabetical Cities Lists</TITLE></HEAD>
<BODY>
{
for $indcode in (65 to 70)
let $indlet := codepoints-to-string($indcode)
return
(<H1> {$indlet} LIST </H1>,
<OL>
{
for $cit in doc("mydoc.xml")/CITIES/ENTITY
where starts-with($cit/NAME,$indlet)
order by $cit/NAME
return <LI>{$cit/NAME}</LI>
}
</OL>)
}
</BODY>
</HTML>
按字母顺序排列的城市名单
{
对于$indcode in(65至70)
let$indlet:=指向字符串的代码点($indcode)
返回
({$indlet}列表,
{
对于doc中的$cit(“mydoc.xml”)/CITIES/ENTITY
其中以($cit/NAME,$indlet)开头
按$cit/名称订购
返回{$cit/NAME}
}
)
}
谢谢,你说得对,我做了。但这仍然会留下语法错误。谢谢,你说得对,我做了。但这仍然会留下语法错误。非常感谢。这正是我需要的。谢谢你的详细解释。非常感谢。这正是我需要的。谢谢你的详细解释。