我正在尝试在 C# 中使用 Xquery FLOWR where 语句:
for $x in //div[@class="class1"] where $x//span="data1" return $x
从 xml 文件中获取一些数据。(使用 FLOWR 的原因是为了方便地从外部文件读取查询运行时)
为此,我使用 Saxon API: http: //www.saxonica.com/html/documentation/dotnet/dotnetapi.html
xml 代码如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<doc>
<div class="class1">
<div class="class2">
<span class="class3">
data1
</span>
<span class="class4">
data2
</span>
</div>
<div class="class5">
data3
</div>
<div class="class6">
data4
</div>
</div>
<div class="class1">
<div class="class2">
<span class="class3">
data5
</span>
</div>
<div class="class5">
data6
</div>
</div>
</doc>
如果我使用 X-base 测试此代码,它会像我预期的那样工作并返回两个 class1 类之一;但是 Saxon 和 xpathtester.com 都编译 Xquery 没有错误但返回空。如果我删除可选的 where 语句,它将按预期运行。我错过了什么吗?