![](/img/trans.png)
[英]A root node <kml> with kml namespace does not parse in basex xquery
[英]BaseX XQuery does not return the root element
我正在尝试对BaseX
使用像这样的XQuery
搜索:
XQUERY doc("ann-20140201.xml")//xbrl
我正在提交原始实例的一小段摘录:
<?xml version="1.0" encoding="US-ASCII"?>
<xbrli:xbrl xmlns:ann="http://www.anninc.com/20140201" xmlns:dei="http://xbrl.sec.gov/dei/2013-01-31" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:us-gaap="http://fasb.org/us-gaap/2013-01-31" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<link:schemaRef xlink:href="ann-20140201.xsd" xlink:type="simple" />
<xbrli:context id="FD2011Q4YTD">
<xbrli:entity>
<xbrli:identifier scheme="http://www.sec.gov/CIK">0000874214</xbrli:identifier>
</xbrli:entity>
<xbrli:period>
<xbrli:startDate>2011-01-30</xbrli:startDate>
<xbrli:endDate>2012-01-28</xbrli:endDate>
</xbrli:period>
</xbrli:context>
<xbrli:context id="FD2011Q4YTD_ann_EarningsPerShareReconciliationAxis_ann_EarningsPerShareBasic.Member">
<xbrli:entity>
但是,即使很清楚 <xbrl>
是我使用BaseX
执行查询时的根元素,它也不会返回任何内容!
当等效命令返回根时,如何不返回任何内容?
等效命令为:
XQUERY doc("ann-20140201.xml")//*
如上一个答案所示,您需要指定名称空间URI。 这是另一种实现方法:
doc("ann-20140201.xml")//Q{http://www.xbrl.org/2003/instance}xbrl
如果您是懒惰的打字员,则最好使用通配符:
doc("ann-20140201.xml")//*:xbrl
您的根元素是{http://xbrl.org/2003/instance}xbrl
。 您的查询正在寻找xbrl
。 他们不是一回事。
尝试:
declare namespace xbrli=http://xbrl.org/2003/instance;
doc("ann-20140201.xml")//xbrli:xbrl
这是一个名称空间问题。 如果将不同来源的XML组合在一起,则命名空间尤其重要。 将(X)HTML嵌入RSS提要中,其中某些元素可能共享相同的名称,但含义不同。
要解决此问题,请注册并使用以下名称空间:
declare namespace xbrli = "http://www.xbrl.org/2003/instance";
doc("ann-20140201.xml")//xbrli:xbrl
如果要继续使用命令输入字段,则可以将这两行合并为一行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.