我正在尝试从xml(或更准确地说:xbrl)文件中提取信息,该文件引用了许多名称空间。我并不真正在乎命名空间,我更希望能够在不指定文件的情况下搜索文件。
这里是一个例子:
require(magrittr)
xml <-xml2::read_xml("http://regnskaber.virk.dk/21560853/ZG9rdW1lbnRsYWdlcjovLzAzLzdlLzk4L2JiLzg4L2NiNzctNDE2ZC1hOWJmLTkxN2QxZWRkMGY0Yg.xml")
此文件包含以下节点:
<cmn:IdentificationNumberOfAuditor contextRef=\"duration_IdentificationOfAuditorDimension_cmn_auditorIdentifier_only_1\">mne18078</cmn:IdentificationNumberOfAuditor>
我知道我可以使用 xml2 :: xml_find_all(xml,'// cmn:IdentificationNumberOfAuditor')
但这只是在我知道名称空间前缀的情况下,而且我不确定在我需要处理的成千上万个文件中,它们的名称是否相同。所以我希望它能起作用:
xml2::xml_find_all(xml2::xml_ns_strip(xml), '//IdentificationNumberOfAuditor')
因为我认为xml_ns_strip会删除名称空间信息的xml文件。但是,由于以下原因,xml_ns_strip实际上似乎什么也没做:
identical(xml %>% as.character(), xml_ns_strip(xml) %>% as.character())
返回true。
答案 0 :(得分:0)
作为参考,我发现此问题的最佳解决方案是使用https://www.ibm.com/support/knowledgecenter/vi/SSEPGG_10.1.0/com.ibm.db2.luw.xml.doc/doc/r0054369.html中的xslt样式表
<h1>Find the sum of 1 to some number!</h1>
<form id="myForm" name="myForm">
<input type="number" id="numInput" name="numInput" placeholder="Enter a positive number here" autofocus>
<input type="text" id="sum" name="sum" disabled>
<button type="button" onclick="showSum(parseInt(this.form.numInput.value));">Calculate! </button>
</form>