如何将一个 FLWOR 传输到另一个?
How to pipe one FLWOR into another?
简单 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
...
和另一个 非数字数据:
for $foo in db:open("foo")
return $foo//text()[not(matches(., '[0-9]'))]
其中 似乎 到 return 只有名字。基于该假设,希望触发 <person>
上的结束标记并打开新的 <person>
,例如:
<person>
<name>a</name>
<data>123</data>
<data>345</data>
<data>123 main st</data>
</person>
<person>
...
</person>
或者类似的东西。只是真正希望根据 假设 将个体分开,即他们的名字中没有数字,然后在 XML
.
中创建某种实体
只要每次找到 "name" 触发关闭标签然后 "starting" 一个新人。完全不确定这里的标准行话。
下面创建一个临时的 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>
简单 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
...
和另一个
for $foo in db:open("foo")
return $foo//text()[not(matches(., '[0-9]'))]
其中 似乎 到 return 只有名字。基于该假设,希望触发 <person>
上的结束标记并打开新的 <person>
,例如:
<person>
<name>a</name>
<data>123</data>
<data>345</data>
<data>123 main st</data>
</person>
<person>
...
</person>
或者类似的东西。只是真正希望根据 假设 将个体分开,即他们的名字中没有数字,然后在 XML
.
只要每次找到 "name" 触发关闭标签然后 "starting" 一个新人。完全不确定这里的标准行话。
下面创建一个临时的 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>