【问题标题】:xquery for conditional pathxquery 条件路径
【发布时间】:2014-03-17 06:06:04
【问题描述】:

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

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

现在我想执行一个 xquery,其中必须检查名称标签。比如如果名字是“def”那么结果应该是

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

你能指导我做这件事吗?

【问题讨论】:

    标签: xml xquery


    【解决方案1】:

    这个锥体可以在一个简单的 XPath 中完成(XPath 是 XQuery 的一个子集)。表达式将是:

    //*[name = 'def']/type1
    

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

    您可能还想了解 XPath/XQuery 的基础知识,因为这是最基本的东西之一。因此,如果您打算花更多时间使用 XPath/XQuery,则应该让自己更加熟悉该语言。

    【讨论】:

    • 感谢您的帮助。当名称与 def 匹配时,我正在寻找一个打印所有兄弟姐妹和后代的查询。我知道我可以使用以下功能来显示后面的所有内容
    • @user2934433 请更具体,并提供更多信息,您真正想要实现的目标。如果要显示所有兄弟姐妹和后代,为什么&lt;name&gt;def&lt;/name&gt; 不在您的输出集中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 2019-12-03
    相关资源
    最近更新 更多