首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

xquery 的let的有关问题

2012-03-12 
xquery 的let的问题test.xml内容如下XML code?xml version1.0 encodingUTF-8?rootstudentid

xquery 的let的问题
test.xml内容如下

XML code
<?xml version="1.0" encoding="UTF-8"?><root>    <student>        <id>1</id>        <name>Jim</name>        <age>23</age>        <sex>boy</sex>    </student>    <student>        <id>2</id>        <name>Jack</name>        <age>22</age>        <sex>boy</sex>    </student></root>

xquery语句:let $var := <COOL>{ doc("test.xml") }</COOL>return $var/COOL
返回空结果
1.请问当前变量var指向那一层节点?
  我使用$var/COOL 为什么出错
  如果使用$var/.没问题


[解决办法]
<COOL>{ doc("test.xml") }</COOL> 这句执行下来的结果就是一个字符串,所以不存在COOL节点。
如果你想返回节点,参考如下语句:
let $var := doc("test.xml") return $var/root

[解决办法]
let $var := <COOL>{ doc("c:\test.xml") }</COOL>
return $var

如果要求能够正确解释上面的问题,你必须深入了解XQuery、Xml。

>>>请问当前变量var指向那一层节点?
$var变量是节点<COOL>, 它的类型是Element类型的节点。node-name() = COOL
>>> 我使用$var/COOL 为什么出错
$var是COOL节点,它没有COOL子节点。
>>> 如果使用$var/.没问题
$var/. 返回当前节点,当然没有问题了。


<?xml version="1.0" encoding="UTF-8"?>
<root>
<student>
<id>1</id>
<name>Jim</name>
<age>23</age>
<sex>boy</sex>
</student>
<student>
<id>2</id>
<name>Jack</name>
<age>22</age>
<sex>boy</sex>
</student>
</root>
<!-- comment -->

热点排行