xquery:查找父节点是否具有不同命名空间的子节点 [英] xquery: find if a parent node has a child node of a different namespace

查看:29
本文介绍了xquery:查找父节点是否具有不同命名空间的子节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试检查名称空间X"的节点是否具有不同名称空间Y"的子节点.我尝试了以下 xquery:

I am trying to check if a node of namespace 'X' has a child node of a different namespace 'Y'. I tried the following xquery:

declare namespace atom = "http://www.w3.org/2005/Atom";
declare namespace libx = "http://libx.org/xml/libx2";

let $doc := <node><entries xmlns="http://www.w3.org/2005/Atom" xmlns:libx="http://libx.org/xml/libx2"> 
             <libx:book-entry><book>Book 1</book><author>Author 1 PQR</author><title>Title 1</title></libx:book-entry> 
             <libx:car-entry><car>Car 1</car><model>Model 1</model><price>Price 1 PQR</price></libx:car-entry>
           </entries></node>, 
    $types := <types xmlns="http://libx.org/xml/libx2"><type>book-entry</type></types>, 
    $key := 'PQR'

for $type in $types/libx:type
return
   for $entry in $doc/atom:entries/*[name() eq $type]
     return $entry

我希望结果是:Book 1Author 1 PQRTitle 1</标题></libx:book-entry></code>.但是,查询返回 null,因为 name 函数没有考虑不同的命名空间.除了 name() 之外,是否还有另一个 xquery 函数,它接受一个命名空间参数,它会给出所需的结果.<em class="showen"></em></p> <p class="en">I expect the result to be: <code><libx:book-entry><book>Book 1</book><author>Author 1 PQR</author><title>Title 1</title></libx:book-entry></code>. But, the query returns null as the name function does not take into account a different namespace. Is there another xquery function apart from name() which takes in a namespace parameter which would give the desired result.</p> <p class="cn">谢谢,索尼</p> <h3 class="best_ans mt-1">推荐答案</h3> <p class="cn">您可以使用 <code>local-name()</code> 函数来匹配元素的本地名称(正如您在 <强>$types</strong>).<em class="showen"></em></p> <p class="en">You could use the <code>local-name()</code> function to match just the elements' local names (as you have listed them in <strong>$types</strong>).</p> <p class="cn">或者,如果您想具体一点,可以组合使用 <code>local-name()</code> 和 <code>namespace-uri()</code> 函数来匹配元素名称和命名空间 URI.<em class="showen"></em></p> <p class="en">Or if you wanted to be really specific, a combination of the <code>local-name()</code> and <code>namespace-uri()</code> functions to match both element name and Namespace URI.</p> <p>这篇关于xquery:查找父节点是否具有不同命名空间的子节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!</p> </div> <div class="arc-body-main-more"> <span onclick="unlockarc('2503221');">查看全文</span> </div> </div> <div> </div> <div class="wwads-cn wwads-horizontal" data-id="166" style="max-width:100%;border: 4px solid #666;"></div> </div> </article> <div id="arc-ad-2" class="mb-1"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834" crossorigin="anonymous"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5038752844014834" data-ad-slot="3921941283"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="widget bgwhite radius-1 mb-1 shadow widget-rel"> <h5>相关文章</h5> <ul> <li> <a target="_blank" title="XML:子节点是否继承父节点的命名空间前缀?" href="/2500965.html"> XML:子节点是否继承父节点的命名空间前缀?; </a> </li> <li> <a target="_blank" title="节点中具有命名空间的 xquery 的语法" href="/2414183.html"> 节点中具有命名空间的 xquery 的语法; </a> </li> <li> <a target="_blank" title="每个父节点具有不同数量的子节点的 XML" href="/2501532.html"> 每个父节点具有不同数量的子节点的 XML; </a> </li> <li> <a target="_blank" title="如何获取具有不同命名空间的元素" href="/2502969.html"> 如何获取具有不同命名空间的元素; </a> </li> <li> <a target="_blank" title="具有多个父节点和子节点的链表" href="/2755168.html"> 具有多个父节点和子节点的链表; </a> </li> <li> <a target="_blank" title="获取父节点及其子节点,其中的子节点具有特定的文本" href="/866799.html"> 获取父节点及其子节点,其中的子节点具有特定的文本; </a> </li> <li> <a target="_blank" title="rails 路由:具有不同命名空间的嵌套资源" href="/2387493.html"> rails 路由:具有不同命名空间的嵌套资源; </a> </li> <li> <a target="_blank" title="XML::LibXML 问题查找具有命名空间的 XML 节点" href="/2333986.html"> XML::LibXML 问题查找具有命名空间的 XML 节点; </a> </li> <li> <a target="_blank" title="如何使用 XQuery 检索父节点?" href="/2330166.html"> 如何使用 XQuery 检索父节点?; </a> </li> <li> <a target="_blank" title="xquery:如何删除 xml 节点中未使用的命名空间?" href="/2505011.html"> xquery:如何删除 xml 节点中未使用的命名空间?; </a> </li> <li> <a target="_blank" title="在具有相同命名的子节点的同时从XML文件检索特定元素" href="/653247.html"> 在具有相同命名的子节点的同时从XML文件检索特定元素; </a> </li> <li> <a target="_blank" title="两个具有相同命名空间的不同 DLL" href="/2671498.html"> 两个具有相同命名空间的不同 DLL; </a> </li> <li> <a target="_blank" title="SoapHeader 子节点中的 PHP 命名空间" href="/2313483.html"> SoapHeader 子节点中的 PHP 命名空间; </a> </li> <li> <a target="_blank" title="查找对相同命名空间的引用" href="/1370179.html"> 查找对相同命名空间的引用; </a> </li> <li> <a target="_blank" title="查找具有命名空间的 XML 节点的 XML::LibXML 问题" href="/2797773.html"> 查找具有命名空间的 XML 节点的 XML::LibXML 问题; </a> </li> <li> <a target="_blank" title="如何在xQuery中获得没有子节点的节点?" href="/1597090.html"> 如何在xQuery中获得没有子节点的节点?; </a> </li> <li> <a target="_blank" title="具有命名空间的 XPath 选择节点" href="/2462953.html"> 具有命名空间的 XPath 选择节点; </a> </li> <li> <a target="_blank" title="不同命名空间中的部分类" href="/511360.html"> 不同命名空间中的部分类; </a> </li> <li> <a target="_blank" title="删除没有子节点的父节点" href="/2797646.html"> 删除没有子节点的父节点; </a> </li> <li> <a target="_blank" title="用不同的父节点以及不同的子节点实现WPF树视图?" href="/1547572.html"> 用不同的父节点以及不同的子节点实现WPF树视图?; </a> </li> <li> <a target="_blank" title="所有父节点必须具有相同类型的子节点吗?" href="/1073816.html"> 所有父节点必须具有相同类型的子节点吗?; </a> </li> <li> <a target="_blank" title="jstree jquery插件 - 获取父节点的所有子节点和子子节点" href="/2800788.html"> jstree jquery插件 - 获取父节点的所有子节点和子子节点; </a> </li> <li> <a target="_blank" title="NestedSet - 父/子节点" href="/2429921.html"> NestedSet - 父/子节点; </a> </li> <li> <a target="_blank" title="将子节点附加到父节点" href="/2501479.html"> 将子节点附加到父节点; </a> </li> <li> <a target="_blank" title="TreeView-父节点和子节点" href="/1394075.html"> TreeView-父节点和子节点; </a> </li> </ul> </div> <div class="mb-1"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834" crossorigin="anonymous"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5038752844014834" data-ad-slot="3921941283"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="side"> <div class="widget widget-side bgwhite mb-1 shadow"> <h5>其他开发最新文章</h5> <ul> <li> <a target="_blank" title="拒绝显示一个框架,因为它将'X-Frame-Options'设置为'sameorigin'" href="/893060.html"> 拒绝显示一个框架,因为它将'X-Frame-Options'设置为'sameorigin'; </a> </li> <li> <a target="_blank" title="什么是&QUOT; AW&QUOT;在部分标志属性是什么意思?" href="/303988.html"> 什么是&QUOT; AW&QUOT;在部分标志属性是什么意思?; </a> </li> <li> <a target="_blank" title="在运行npm install命令时获取'npm WARN弃用'警告" href="/840917.html"> 在运行npm install命令时获取'npm WARN弃用'警告; </a> </li> <li> <a target="_blank" title="cmake无法找到openssl" href="/516280.html"> cmake无法找到openssl; </a> </li> <li> <a target="_blank" title="从Spark的scala中的* .tar.gz压缩文件中读取HDF5文件" href="/850628.html"> 从Spark的scala中的* .tar.gz压缩文件中读取HDF5文件; </a> </li> <li> <a target="_blank" title="Twitter :: Error :: Forbidden - 无法验证您的凭据" href="/630061.html"> Twitter :: Error :: Forbidden - 无法验证您的凭据; </a> </li> <li> <a target="_blank" title="我什么时候需要一个fb:app_id或者fb:admins?" href="/747981.html"> 我什么时候需要一个fb:app_id或者fb:admins?; </a> </li> <li> <a target="_blank" title="将.db文件导入R" href="/902960.html"> 将.db文件导入R; </a> </li> <li> <a target="_blank" title="npm通知创建一个lockfile作为package-lock.json。你应该提交这个文件" href="/744854.html"> npm通知创建一个lockfile作为package-lock.json。你应该提交这个文件; </a> </li> <li> <a target="_blank" title="拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src'self'”" href="/819167.html"> 拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src'self'”; </a> </li> </ul> </div> <div class="widget widget-side bgwhite mb-1 shadow"> <h5> 热门教程 </h5> <ul> <li> <a target="_blank" title="Java教程" href="/OnLineTutorial/java/index.html"> Java教程 </a> </li> <li> <a target="_blank" title="Apache ANT 教程" href="/OnLineTutorial/ant/index.html"> Apache ANT 教程 </a> </li> <li> <a target="_blank" title="Kali Linux教程" href="/OnLineTutorial/kali_linux/index.html"> Kali Linux教程 </a> </li> <li> <a target="_blank" title="JavaScript教程" href="/OnLineTutorial/javascript/index.html"> JavaScript教程 </a> </li> <li> <a target="_blank" title="JavaFx教程" href="/OnLineTutorial/javafx/index.html"> JavaFx教程 </a> </li> <li> <a target="_blank" title="MFC 教程" href="/OnLineTutorial/mfc/index.html"> MFC 教程 </a> </li> <li> <a target="_blank" title="Apache HTTP客户端教程" href="/OnLineTutorial/apache_httpclient/index.html"> Apache HTTP客户端教程 </a> </li> <li> <a target="_blank" title="Microsoft Visio 教程" href="/OnLineTutorial/microsoft_visio/index.html"> Microsoft Visio 教程 </a> </li> </ul> </div> <div class="widget widget-side bgwhite mb-1 shadow"> <h5> 热门工具 </h5> <ul> <li> <a target="_blank" title="Java 在线工具" href="/Onlinetools/details/4"> Java 在线工具 </a> </li> <li> <a target="_blank" title="C(GCC) 在线工具" href="/Onlinetools/details/6"> C(GCC) 在线工具 </a> </li> <li> <a target="_blank" title="PHP 在线工具" href="/Onlinetools/details/8"> PHP 在线工具 </a> </li> <li> <a target="_blank" title="C# 在线工具" href="/Onlinetools/details/1"> C# 在线工具 </a> </li> <li> <a target="_blank" title="Python 在线工具" href="/Onlinetools/details/5"> Python 在线工具 </a> </li> <li> <a target="_blank" title="MySQL 在线工具" href="/Onlinetools/Dbdetails/33"> MySQL 在线工具 </a> </li> <li> <a target="_blank" title="VB.NET 在线工具" href="/Onlinetools/details/2"> VB.NET 在线工具 </a> </li> <li> <a target="_blank" title="Lua 在线工具" href="/Onlinetools/details/14"> Lua 在线工具 </a> </li> <li> <a target="_blank" title="Oracle 在线工具" href="/Onlinetools/Dbdetails/35"> Oracle 在线工具 </a> </li> <li> <a target="_blank" title="C++(GCC) 在线工具" href="/Onlinetools/details/7"> C++(GCC) 在线工具 </a> </li> <li> <a target="_blank" title="Go 在线工具" href="/Onlinetools/details/20"> Go 在线工具 </a> </li> <li> <a target="_blank" title="Fortran 在线工具" href="/Onlinetools/details/45"> Fortran 在线工具 </a> </li> </ul> </div> </div> </div> <script type="text/javascript">var eskeys = 'xquery,查找,父,节点,是否,具有,不同,命名,空间,的,子,节点'; var cat = 'cc';';//other-dev</script> </div> <div id="pop" onclick="pophide();"> <div id="pop_body" onclick="event.stopPropagation();"> <h6 class="flex flex101"> 登录 <span onclick="pophide();">关闭</span> </h6> <div class="pd-1"> <div class="wxtip center"> <span>扫码关注<em>1秒</em>登录</span> </div> <div class="center"> <img id="qr" src="https://huajiakeji.com/Content/Images/qrydx.jpg" alt="" style="width:150px;height:150px;" /> </div> <div style="margin-top:10px;display:flex;justify-content: center;"> <input type="text" placeholder="输入验证码" id="txtcode" autocomplete="off" /> <input id="btngo" type="button" onclick="chk()" value="GO" /> </div> <div class="center" style="margin: 4px; font-size: .8rem; color: #f60;"> 发送“验证码”获取 <em style="padding: 0 .5rem;">|</em> <span style="color: #01a05c;">15天全站免登陆</span> </div> <div id="chkinfo" class="tip"></div> </div> </div> </div> <script type="text/javascript" src="https://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/highlight.min.js"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/base.js?v=0.22"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/tui.js?v=0.11"></script> <footer class="footer"> <div class="container"> <div class="flink mb-1"> 友情链接: <a href="https://www.it1352.com/" target="_blank">IT屋</a> <a href="https://huajiakeji.com/" target="_blank">Chrome插件</a> <a href="https://www.cnplugins.com/" target="_blank">谷歌浏览器插件</a> </div> <section class="copyright-section"> <a href="https://www.it1352.com" title="IT屋-程序员软件开发技术分享社区">IT屋</a> ©2016-2022 <a href="http://www.beian.miit.gov.cn/" target="_blank">琼ICP备2021000895号-1</a> <a href="/sitemap.html" target="_blank" title="站点地图">站点地图</a> <a href="/Home/Tags" target="_blank" title="站点标签">站点标签</a> <a target="_blank" alt="sitemap" href="/sitemap.xml">SiteMap</a> <a href="/1155981.html" title="IT屋-免责申明"><免责申明></a> 本站内容来源互联网,如果侵犯您的权益请联系我们删除. </section> <!--统计代码--> <script type="text/javascript"> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?0c3a090f7b3c4ad458ac1296cb5cc779"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script type="text/javascript"> (function () { var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </div> </footer> </body> </html>