Xml 条件路径的xquery

Xml 条件路径的xquery,xml,xquery,Xml,Xquery,我在处理xquery时遇到了一个问题,我在同一级别上有不同类型的节点。我需要根据节点显示一个xquery。下面是一个例子 <head> <type1> <name>abc</name> </type1> <type2> <name>def</name> &

我在处理xquery时遇到了一个问题,我在同一级别上有不同类型的节点。我需要根据节点显示一个xquery。下面是一个例子

   <head>
         <type1>
              <name>abc</name>
         </type1>
         <type2>
               <name>def</name>
               <type1>
                      <name>efg</name>
               </type1>
         </type2>
   </head>

abc
def
efg
现在我想执行一个xquery,其中必须检查名称标记。若名称是“def”,那个么结果应该是

  <type1>
                <name> efg </name>
   </type1>

efg

您能告诉我如何处理这个问题吗。

这个问题可以在一个简单的XPath中完成(XPath是XQuery的子集)。表达方式为:

//*[name = 'def']/type1
这将搜索名为
name
的子元素等于
def
的所有元素,并返回
type1
元素。根据实际数据,如果只想在
type2
元素中搜索,可能需要将
*
(通配符运算符)更改为
type2
。从你的问题来看,这不是很清楚


您可能还需要检查XPath/XQuery的基础知识,因为这是最基本的内容之一。因此,如果您打算花更多时间使用XPath/XQuery,您应该更加熟悉该语言。

谢谢您的帮助。我正在寻找一个查询,当名称与def匹配时,该查询将打印所有的兄弟姐妹和后代。我知道我可以使用下面的内容来显示follows@user2934433请更加具体,提供更多信息,说明您真正想要实现的目标。如果要显示所有同级和子级,为什么输出集中没有
def