如何在不重写整个查询的情况下重写此xquery以删除子节点?

这是可用于此xml文件的xquery。

<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
              <manager>

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

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

它产生下面的输出。

<results>
  <row>
    <dependent name="Alice"/>
    <employee>
      <emp fname="John" lname="Smith"/>
      <manager>
        <mgr fname="Franklin" lname="Wong"/>
      </manager>
    </employee>
  </row>
  <row>
    <dependent name="Elizabeth"/>
    <employee>
      <emp fname="John" lname="Smith"/>
      <manager>
        <mgr fname="Franklin" lname="Wong"/>
      </manager>
    </employee>
  </row>
  <row>
    <dependent name="Michael"/>
    <employee>
      <emp fname="John" lname="Smith"/>
      <manager>
        <mgr fname="Franklin" lname="Wong"/>
      </manager>
    </employee>
  </row>
  <row>
    <dependent name="Alice"/>
    <employee>
      <emp fname="Franklin" lname="Wong"/>
      <manager>
        <mgr fname="James" lname="Borg"/>
      </manager>
    </employee>
  </row>
  <row>
    <dependent name="Joy"/>
    <employee>
      <emp fname="Franklin" lname="Wong"/>
      <manager>
        <mgr fname="James" lname="Borg"/>
      </manager>
    </employee>
  </row>
  <row>
    <dependent name="Theodore"/>
    <employee>
      <emp fname="Franklin" lname="Wong"/>
      <manager>
        <mgr fname="James" lname="Borg"/>
      </manager>
    </employee>
  </row>
  <row>
    <dependent name="Abner"/>
    <employee>
      <emp fname="Jennifer" lname="Wallace"/>
      <manager>
        <mgr fname="James" lname="Borg"/>
      </manager>
    </employee>
  </row>
</results>

如何在最终结果中删除员工和经理标签,使其在下面看起来更像这样。

   <results>
      <row>
        <dependent name="Alice"/>
        <emp fname="John" lname="Smith"/>
        <mgr fname="Franklin" lname="Wong"/>
      </row>
      <row>
        <dependent name="Elizabeth"/>
        <emp fname="John" lname="Smith"/>
        <mgr fname="Franklin" lname="Wong"/>
      </row>
      <row>
        <dependent name="Michael"/>
        <emp fname="John" lname="Smith"/>
        <mgr fname="Franklin" lname="Wong"/>
      </row>
      <row>
        <dependent name="Alice"/>
        <emp fname="Franklin" lname="Wong"/>
        <mgr fname="Franklin" lname="Wong"/>
      </row>
      <row>

...等等,依此类推。

我只需要知道如何重写最终的xquery即可消除最终结果中对雇员和经理节点的需要,但仍然保留该值。

lqlzzm156 回答:如何在不重写整个查询的情况下重写此xquery以删除子节点?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3158379.html

大家都在问