2017-02-07 2 views
1

Я пытаюсь прочитать эту url и пытается извлечь информацию между этим тегом: «identificationInfo»отсутствующих атрибутов в XML при использовании питона

Однако, когда я использую этот код:

import requests 
import xml.etree.ElementTree as ET 

url = "http://qldspatial.information.qld.gov.au/catalogue/rest/document?id={96BD66CE-2207-4D35-815B-0E5648C0185F}&f=xml" 

response = requests.get(url) 

xml_content = response.content 

tree = ET.fromstring(xml_content) 

for child in tree: 

    print(child.tag, child.attrib) 

но результаты, которые я возвращаю, не содержат атрибутов для тегов.

('{http://www.isotc211.org/2005/gmd}fileIdentifier', {}) 
('{http://www.isotc211.org/2005/gmd}language', {}) 
('{http://www.isotc211.org/2005/gmd}characterSet', {}) 
('{http://www.isotc211.org/2005/gmd}parentIdentifier', {}) 
('{http://www.isotc211.org/2005/gmd}hierarchyLevel', {}) 
('{http://www.isotc211.org/2005/gmd}contact', {}) 
('{http://www.isotc211.org/2005/gmd}dateStamp', {}) 
('{http://www.isotc211.org/2005/gmd}metadataStandardName', {}) 
('{http://www.isotc211.org/2005/gmd}metadataStandardVersion', {}) 
('{http://www.isotc211.org/2005/gmd}referenceSystemInfo', {}) 
('{http://www.isotc211.org/2005/gmd}identificationInfo', {}) 
('{http://www.isotc211.org/2005/gmd}distributionInfo', {}) 
('{http://www.isotc211.org/2005/gmd}dataQualityInfo', {}) 
('{http://www.isotc211.org/2005/gmd}metadataConstraints', {})` 

Я не знаком с xml, и я не могу понять, почему я больше не вижу никакой информации. Я пропустил шаг? Если бы кто-то мог помочь, это было бы очень полезно.

+0

Что именно вы хотите получить? Просто текст? '72 ареала обитания рыбы в этом наборе данных объявлены в соответствии с разделом 120 - Закон о рыболовстве 1994 года и Правилами 3 по рыболовству в Квинсленде с эффективностью 30 сентября 2016 года. Это составная часть границы области обитания рыбной рыбы ...'? Или 'xml' дерево' идентификационной информации'? – Andersson

+0

Я действительно только после текста из тегов из дерева , но я был бы рад возможности распечатать дерево xml идентификационной информации, но на данный момент я не очень далеко либо с. – TsvGis

+0

На самом деле, единственная информация, что мне нужно от дерева является: ' 2014-09-05 и' < gco: CharacterString> Отдел национальных парков, спорта и гонок '. Мне нужно извлечь эту информацию из других xmls одной структуры, поэтому я пытаюсь автоматизировать это. – TsvGis

ответ

1

Я использую minidom вместо ElementTree. Код для получения требуемых значений:

from xml.dom import minidom 
import requests 

url = "http://qldspatial.information.qld.gov.au/catalogue/rest/document?id={96BD66CE-2207-4D35-815B-0E5648C0185F}&f=xml" 

response = requests.get(url) 
xml_content = response.content 
doc = minidom.parseString(xml_content) 
identification = doc.getElementsByTagName("identificationInfo")[0] 
date = identification.getElementsByTagName('gco:Date')[0].firstChild.nodeValue # "2014-09-05" 
responsible_party = identification.getElementsByTagName('CI_ResponsibleParty')[0] 
department = responsible_party.getElementsByTagName('gco:CharacterString')[0].firstChild.nodeValue # "Department of National Parks, Sport and Racing" 
+0

Ваш Awsome !! Это отлично работает! Я собирался использовать Beautiful Soup, чтобы сделать это, так как у меня был успех с ним прошлой ночью, но это решает мою проблему, заключающуюся в том, чтобы представить сторонний пакет. – TsvGis

 Смежные вопросы

  • Нет связанных вопросов^_^