xml - 如何将一个 FLWOR 传输到另一个?
问题描述
轻松FLWOR
获取所有数据(来自电子表格):
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]'))]
这似乎只返回名称。在这种假设下,希望在 a 上触发关闭标签<person>
并打开一个新标签<person>
,例如:
<person>
<name>a</name>
<data>123</data>
<data>345</data>
<data>123 main st</data>
</person>
<person>
...
</person>
或类似的东西。只是在假设他们的名字中没有数字的情况下真正想将个人分开,然后在XML
.
只要每次找到触发关闭标签然后“开始”一个新人的“名称”。完全不确定这里的标准术语。
解决方案
下面创建一个临时 XML 结构,然后遍历每个name
元素,创建一个person
with thename
和 it'sfollowing-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>
推荐阅读
- reactjs - 反应原生突然无法解决模块`fs`错误
- html - 列在 Bootstrap 3 滑块中消失了
- javascript - 保证在 evalAsync 完成后运行
- python - 有没有办法在 XlsxWriter 中创建图表而不将数据写入工作表中的单元格?IE。从python脚本中的数组?
- swig - g++.exe:错误:无法识别的命令行选项
- mongodb - 如何使用 MongoDb 的 $gte 和 $lte 将日期和时间保存为单独字段上的字符串
- c++ - 如何在声明期间将操作分配给复数?
- java - 在菜单应用打开应用之前运行应用页面出错
- css - css 媒体最大宽度无法正常工作
- javascript - 在 Mapbox 中更改样式时如何保留数据