Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何重写此xquery以删除子节点而不重写整个查询?_Xml_Xquery - Fatal编程技术网

Xml 如何重写此xquery以删除子节点而不重写整个查询?

Xml 如何重写此xquery以删除子节点而不重写整个查询?,xml,xquery,Xml,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("

下面是处理此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>

{
对于文档中的$depen(“../company/dependent.xml”)//dependent
其中$depen/dependent\u name=*
返回
{
对于文档中的$emp(“../company/employee.xml”)//employee[ssn=$depen/essn]
返回
{
对于文档中的$man(“../company/employee.xml”)//employee[ssn=$emp/superssn]
返回
}              
} 
}
它产生下面的输出

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

如何删除最终结果中的employee和manager标记,使其看起来更像下面这样

   <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,以消除最终结果中对employee和manager节点的需要,但仍保留该值。

好的,无论您在哪里执行
return…
return…
都可以简单地使用
return…
,不是吗?我不确定我是否理解这个问题,如果您当前的XQuery代码中包含
employee
manager
元素的文本,那么只需从代码中删除这些文本即可。这样做会给我一个错误。你能给我举一个例子说明这是怎么做的吗?你到底使用了哪个XQuery处理器,你到底收到了哪个错误消息?您的原始示例似乎缺少
emp
元素的结束标记。我解决了这个问题,但您能帮我解决另一个问题吗。如何从这段代码中删除文字