長いxmlドキュメントから、いくつかの属性を取得しようとしています。具体的には、このコードが確実に達成するステージのcfsおよびftレベルを取得しようとしています。難しいのは、次のようなタグからタイムスタンプを日時値として抽出する方法がわからないように見えることです。
<ns1:value qualifiers="P" dateTime="2012-11-01T18:45:00.000-05:00">54800</ns1:value>
改善のための助けや提案は大歓迎です。
def getLevels(gaugeId):
# create url string 00060=cfs and 00065=ft
urlRoot = "http://waterservices.usgs.gov/nwis/iv/?format=waterml,1.1&sites="
urlTail = "¶meterCd=00060,00065"
url = urlRoot + str(gaugeId) + urlTail
del urlRoot, urlTail
# open connection to url
urlFile = urllib2.urlopen(url)
# convert urlFile to string data:
urlData = urlFile.read()
# close file to release memory
urlFile.close()
# parse downloaded xml
domData = parseString(urlData)
# extract xml element values for stage cfs and ft
index = 0
elementCount = domData.getElementsByTagName("ns1:value").length
output = []
while elementCount >= index:
xmlString = domData.getElementsByTagName("ns1:value")[index].toxml()
output.append(stripXmlTags(xmlString))
index = index + 1
# extract and return
return output