Xquery возвращает несколько значений вместо одного: цикл For в xquery в osb - PullRequest
0 голосов
/ 18 мая 2019

Элемент контейнеров не должен повторяться ..

  1. Под контейнерами петля должна повторяться Пример:
"Containers":
[
   {
      "I'd":"2",
      "Name":"sai",
      "Age":"23"
   },
   {
      "I'd":"3",
      "Name":"Kumar",
      "Age":"25"
   }
]

Примечание: повторять должны только дочерние элементы, но не контейнеры.

Как мы можем обработать в xquery pls справку об этом ,,, я использовал для цикла, но контейнеры повторяются ...

1 Ответ

1 голос
/ 18 мая 2019

Предполагая, что у вас есть что-то вроде XML

<root>
 <containers>
     <Id>1</Id>
     <Name>First Name</Name>
     <Age>11</Age>
  </containers>
  <containers>
     <Id>2</Id>
     <Name>Second Name</Name>
     <Age>12</Age>
  </containers>
</root>

Попробуйте выполнить данный xquery

<root>{
  for $x in //container
   return <containers>
   <Id>{data($x/Id)}</Id> 
    <Name>{data($x/Name)}</Name>
    <Age>{data($x/Age)}</Age>
   </containers>
  }<root>

вывод будет


<?xml version="1.0" encoding="UTF-8"?>
<root>
<containers>
      <Id>1</Id>
      <Name>First Name</Name>
      <Age>11</Age>
</containers>
<containers>
      <Id>2</Id>
      <Name>Second Name</Name>
      <Age>12</Age>
  </containers>
</root>

и когда вы конвертируете это в Json, вы получите желаемый результат Пример преобразования Json - онлайн

{
    "root": {
        "containers": [
            {
                "Id": "1",
                "Name": "First Name",
                "Age": "11"
            },
            {
                "Id": "2",
                "Name": "Second Name",
                "Age": "12"
            }
        ]
    }
}
...