xml - XQuery - 连接查询

标签 xml join xquery

我有两个 XML 文件,想合并它们以获得所需的输出。

XML 文件 -1

<Countries>
<Country>
   <No C="1"/>
   <Name>India</Name>
</Country>
<Country>
   <No C="2"/>
   <Name>USA</Name>
</Country>
<Country>
   <No C="3"/>
   <Name>Srilanka</Name>
</Country>
<Country>
   <No C="4"/>
   <Name>Thailand</Name>
</Country>
</Countries>

XML 文件 - 2

<Capitals>
  <Capital>
      <No C="1"/>
      <Name>New Delhi</Name>
  </Capital>
  <Capital>
      <No C="2"/>
      <Name>Washington DC</Name>
  </Capital>
  <Capital>
      <No C="3"/>
      <Name>Colombo</Name>
  </Capital>
  <Capital>
      <No C="4"/>
      <Name>Bangkok</Name>
  </Capital>
</Capitals>

所需的输出 -

India - New Delhi
USA - Washington DC
Srilanka - Colombo
Thailand - Bangkok

我试过是这样的,但是无法得到想要的输出:(

for $x in doc('Country')/Countries
  return 
  <a>
 {$x/Country/Name}
 {
   for $y in doc('Capital')/Capitals
   where $y/Capital/No/@C = $x/Country/No/@C
    return $y/Capital/Name
  }
  </a>

最佳答案

我得到了答案,它是——

谓词中的双向连接 -

for $x in doc('country')//Country
  return 
  string-join( ($x/Name/text(),  
     for $y in doc('capital')//Capital
       where $y/No/@C = $x/No/@C
       return $y/Name/text()
                ), " - ")

关于xml - XQuery - 连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12970162/

相关文章:

android - 我可以在 XML 中绘制矩形吗?

java - 当 false 不是 XML 中的字段时,XQuery 返回 "false"?

sql - 如何使用 XQuery/SQL 进行解码等?

intellij-idea - 无法将 functx 库与 intellij idea 社区版一起使用

php - 如何使用xquery查找节点并向其添加子节点?

java - XMLStreamReader - 奇怪的错误

javascript - XMLHttpRequest 从本地服务器而不是外部服务器加载 XML?

mysql - SELECT 和 JOIN 受限

mysql - 加入 rails 中的表;多对多;尝试在实例上调用 join 方法

java - 使用新行分隔符连接流中的元素