首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析XML中具有命名空间的根节点的属性

解析XML中具有命名空间的根节点的属性
EN

Stack Overflow用户
提问于 2019-11-15 15:53:18
回答 1查看 89关注 0票数 0

我有下面的xml,我试图解析它,并希望得到根节点的属性值,即xmlns:n1值。但是我使用以下值得到了关键错误。

代码语言:javascript
复制
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<n1:Level-1C_Tile_ID xmlns:n1="https://psd-12.sentinel2.eo.esa.int/PSD/S2_PDI_Level-1C_Tile_Metadata.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://psd-12.sentinel2.eo.esa.int/PSD/S2_PDI_Level-1C_Tile_Metadata.xsd /dpc/app/s2ipf/FORMAT_METADATA_TILE_L1C/02.10.02/scripts/../../../schemas/02.12.05/PSD/S2_PDI_Level-1C_Tile_Metadata.xsd">
  <n1:General_Info>
    <TILE_ID metadataLevel="Brief">S2A_OPER_MSI_L1C_TL_MTI__20161111T091803_A007252_T43QBA_N02.04</TILE_ID>
    <DATASTRIP_ID metadataLevel="Standard">S2A_OPER_MSI_L1C_DS_MTI__20161111T091803_S20161111T053350_N02.04</DATASTRIP_ID>
    <DOWNLINK_PRIORITY metadataLevel="Standard">NOMINAL</DOWNLINK_PRIORITY>
    <SENSING_TIME metadataLevel="Standard">2016-11-11T05:33:50.068Z</SENSING_TIME>
    <Archiving_Info metadataLevel="Expertise">
      <ARCHIVING_CENTRE>MTI_</ARCHIVING_CENTRE>
      <ARCHIVING_TIME>2016-11-11T10:53:22.600451Z</ARCHIVING_TIME>
    </Archiving_Info>
  </n1:General_Info>
</n1:Level-1C_Tile_ID>

代码:

代码语言:javascript
复制
from lxml import etree
tree = etree.parse(XML_FILE_CONTENT_PASTED_ABOVE)
root = tree.getroot()            
print(root.attrib['xmlns:n1'])

错误:

代码语言:javascript
复制
KeyError: 'xmlns:n1'

期望输出:

代码语言:javascript
复制
https://psd-12.sentinel2.eo.esa.int/PSD/S2_PDI_Level-1C_Tile_Metadata.xsd
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-16 06:35:22

名称空间声明(xmlns:n1='...')看起来像一个属性,但它不是元素的attrib字典的一部分。

若要获取与n1前缀关联的命名空间URI,请使用nsmap

代码语言:javascript
复制
print(root.nsmap["n1"])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58880540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档