Xquery 对彼此相关的项目进行分组

发布于 2024-10-04 17:43:12 字数 1156 浏览 7 评论 0原文

我正在使用 eXist Xquery。我被这个问题困扰了。

我有一个 20 个 xml 的集合,其内容如下:

1.123.15.200.xml
<element name="userID">P111</element>
<element name="folderUID">A1</element>
<element name="imageUID">IMG15234</element>

1.123.15.205.xml
<element name="userID">P115</element>
<element name="folderUID">A34</element>
<element name="imageUID">IMG15238</element>

等等...

一个用户可以有多个文件夹,一个文件夹可以有多个图像。 1 个 xml 等于 1 个图像数据。

for $x in distinct-values(collection('db/mapdb')//element[@name="userID"])
return
<group>
{
    // This part is where I have issue, i have no idea what to write in within this portion?
}
</group>

输出:

<group>
<user>P111</user>
<folder id="A1">
<image>IMG15238</image>
<image>IMG16234</image>
<image>IMG23523</image>
</folder>
<folder id="A82">
<image>IMG132238</image>
<image>IMG42344</image>
<image>IMG242523</image>
</folder>
</group> 

谢谢你。

I am using eXist Xquery. I am stuck with this issue.

I have a collection of 20 xml with content as per like below:

1.123.15.200.xml
<element name="userID">P111</element>
<element name="folderUID">A1</element>
<element name="imageUID">IMG15234</element>

1.123.15.205.xml
<element name="userID">P115</element>
<element name="folderUID">A34</element>
<element name="imageUID">IMG15238</element>

and etc...

A user can have multiple folders, and a folder can have multiple Images. 1 xml is equal to 1 image data.

for $x in distinct-values(collection('db/mapdb')//element[@name="userID"])
return
<group>
{
    // This part is where I have issue, i have no idea what to write in within this portion?
}
</group>

Output:

<group>
<user>P111</user>
<folder id="A1">
<image>IMG15238</image>
<image>IMG16234</image>
<image>IMG23523</image>
</folder>
<folder id="A82">
<image>IMG132238</image>
<image>IMG42344</image>
<image>IMG242523</image>
</folder>
</group> 

Thanks you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

守不住的情 2024-10-11 17:43:12
let $col := collection('db/mapdb')//*[element]
for $user in distinct-values($col/element[@name eq 'userID']),
return 
<group>
   <user>{$user}</user> 
{ 
   for $fold in distinct-values($col[element[@name eq 'userID'] eq $user]
                                 /element[@name eq 'folderUID'])
   return
   <folder id="{$fold}"> 
{
      for $img in $col[element[@name eq 'userID'] eq $user]
                      [element[@name eq 'folderUID'] eq $fold]
                      /element[@name eq 'imageUID']
      return
      <image>{string($img)}</image> 
}
   </folder> 
} 
</group> 
let $col := collection('db/mapdb')//*[element]
for $user in distinct-values($col/element[@name eq 'userID']),
return 
<group>
   <user>{$user}</user> 
{ 
   for $fold in distinct-values($col[element[@name eq 'userID'] eq $user]
                                 /element[@name eq 'folderUID'])
   return
   <folder id="{$fold}"> 
{
      for $img in $col[element[@name eq 'userID'] eq $user]
                      [element[@name eq 'folderUID'] eq $fold]
                      /element[@name eq 'imageUID']
      return
      <image>{string($img)}</image> 
}
   </folder> 
} 
</group> 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文