简单FLWOR
以获取所有数据(从电子表格was中获取:]
for $foo in db:open("foo")
return $foo//text()
提供这种类型的输出:
...
Smallville, XX 12345-1234
Bob
(123) 456-7809
(123) 876-3468
Smallville, XX 12345-1234
Alice
Smallville, XX 12345-1234
Fred
(123) 654-5432
Smallville, XX 12345-1234
...
和另一个returns非数字数据:
for $foo in db:open("foo")
return $foo//text()[not(matches(., '[0-9]'))]
哪个似乎仅返回名称。在此假设下,希望触发关闭<person>
上的标签并打开新的<person>
,例如:
<person>
<name>a</name>
<data>123</data>
<data>345</data>
<data>123 main st</data>
</person>
<person>
...
</person>
或类似的东西。只是真正希望将assumption上的个人分开,他们的名字中没有数字,然后在XML
中创建某种实体。
只要每次找到一个“姓名”都将触发关闭标签,然后“开始”一个新人,就可以了。这里完全不确定标准的术语。
以下内容创建了一个临时XML结构,然后遍历每个name
元素,并使用person
及其name
元素创建了一个following-sibling::data
。
let $temp :=
<doc>{
for $foo in db:open("foo")
return
if (matches($foo, "[0-9]"))
then <data>{$foo}</data>
else <name>{$foo}</name>
}</doc>
for $name in $temp/name
return
<person>{
$name,
$name/following-sibling::data[preceding-sibling::name[1]= $name]
}</person>