我正在编写一个脚本,用python3和lxml
处理rdf:skos
文件:
我了解到我需要将XML提到的名称空间传递给findall过程。(好吧,奇怪的是,由于XML文件在头中列出了这些,所以这似乎是一个不必要的步骤,但无论如何)。在
打电话时
for concept in root.findall('.//skos:Concept', namespaces=root.nsmap):
这很有效,因为根.nsmap由lxml
构造。在
但是在后面的代码中,我还需要对xml:lang
执行一个测试
Python告诉我
^{3}$好吧,没错,在我的skos文件中,没有额外的xml名称空间声明。所以我试着把它加到根.nsmap迪克特
root.nsmap['xml'] = "http://www.w3.org/XML/1998/namespace"
但那也不管用
nsmap = {'rdf': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#', 'uneskos': 'http://purl.org/umu/uneskos#', 'iso-thes': 'http://purl.org/iso25964/skos-thes#', 'dcterms': 'http://purl.org/dc/terms/', 'skos': 'http://www.w3.org/2004/02/skos/core#', 'rdfs': 'http://www.w3.org/2000/01/rdf-schema#'}
似乎不允许我修改root.nsmap
?在
有人知道怎么做吗?我过去用perlxml::Twig处理过大量的XML,这是非常舒服的,我认为Python社区(至少)也有类似的舒适方法来完成这项工作。。。但是怎么做呢?在
谢谢你的任何暗示。在
修改^{} 没有效果。但是你可以创建另一个字典并修改它。示例:
输出:
^{pr2}$相关问题 更多 >
编程相关推荐