Xml 如何重写此xquery以删除子节点而不重写整个查询?
下面是处理此xml文件的xqueryXml 如何重写此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("
<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
元素的结束标记。我解决了这个问题,但您能帮我解决另一个问题吗。如何从这段代码中删除文字