Как бы вы удалили все литералы из этого xquery - PullRequest
0 голосов
/ 05 ноября 2019

Как можно удалить литералы из возврата в работнике ... / сотрудник и менеджер ... / менеджер, чтобы я мог удалить сотрудника ... / сотрудник и менеджер ... / менеджер. Я хочу, чтобы результат отображался без сотрудника и менеджера в полученном XML.

<results>
      {
        for $depen in doc("../company/dependent.xml")//dependent
        where $depen/dependent_name=*
        return
         <row>
         <dependent name="{$depen/dependent_name}"/>
          {
            for $emp in doc("../company/employee.xml")//employee[ssn = $depen/essn ]
            return

            <employee>

            <emp fname="{$emp/fname}" lname="{$emp/lname}"/>
                  {
                  for $man in doc("../company/employee.xml")//employee[ssn = $emp/superssn ]
                  return


                 <mgr fname="{$man/fname}" lname="{$man/lname}"/>          


                 }              
            </employee> 
          } 
         </row>   
      }
    </results>

1 Ответ

0 голосов
/ 06 ноября 2019

Я думаю, что вы хотите

<results>
      {
        for $depen in doc("../company/dependent.xml")//dependent
        where $depen/dependent_name=*
        return
         <row>
          <dependent name="{$depen/dependent_name}"/>
          {
            for $emp in doc("../company/employee.xml")//employee[ssn = $depen/essn ]
            return

            (

                  <emp fname="{$emp/fname}" lname="{$emp/lname}"/>,

                  for $man in doc("../company/employee.xml")//employee[ssn = $emp/superssn ]
                  return
                     <mgr fname="{$man/fname}" lname="{$man/lname}"/>          

             )              
          } 
         </row>   
      }
</results>

с точки зрения синтаксиса, я не уверен, что сравнение $depen/dependent_name=* имеет какой-либо смысл без контекста.

...