<!-- Mapping from Excel to XBRL -->
<xbrl xmlns="http://www.xbrl.org/2003/instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:ifrs="http://xbrl.ifrs.org/taxonomy/2013-03-28/ifrs">
<link:schemaRef xlink:type="simple" xlink:href="IFRS\ifrs-cor_2013-03-28.xsd"/>
<!-- Contexts -->
<context id="D-2063">
<entity>
<identifier scheme="http://www.cro.gov.np">CRO</identifier>
</entity>
<period>
<startDate>2063-04-01</startDate>
<endDate>2064-03-31</endDate>
</period>
</context>
<context id="I-2063">
<entity>
<identifier scheme="http://www.cro.gov.np">CRO</identifier>
</entity>
<period>
<instant>2064-03-31</instant>
</period>
</context>
<!-- Units -->
<unit id="U-Monetary">
<measure>iso4217:NPR</measure>
</unit>
<!-- Fact values -->
<ifrs:Assets contextRef="I-2063" unitRef="U-Monetary" decimals="0">7954664475</ifrs:Assets>
</xbrl>
上面给出的是基于XML的XBRL文件的示例。我想从ifrs:Assets的FactValue中选择contextRef的属性值。正如我们所看到的,我们定义了名称空间,普通的xquery和简单的xpath不起作用。所以,我用过
xquery version "3.0";
let $x:=doc("/db/Siddhartha/2061.xml")
return $x/*[local-name()="xbrl"]/*[local-name()="Assets"][@contextRef]
但预计I-2063的价值并没有上升。 如何从上面的文件中获取属性contextRef的值?
答案 0 :(得分:2)
如果要返回属性的值,请使用$x/*[local-name()="xbrl"]/*[local-name()="Assets"]/@contextRef/string()
。
当然XQuery还允许您处理命名空间,因此您不需要local-name()
“hacks”:
xquery version "3.0";
declare default element namespace "http://www.xbrl.org/2003/instance";
declare namespace ifrs = "http://xbrl.ifrs.org/taxonomy/2013-03-28/ifrs";
let $x:=doc("/db/Siddhartha/2061.xml")
return $x/xbrl/ifrs:Assets/@contextRef/string()