我的XML文件是
<list>
<ProfileDefinition>
<string name="ID">nCGhwaZNpy6</string>
<string name="name">02.11.2013 Scott Mobile</string>
<decimal name="AccountID">10954</decimal>
<decimal name="TimeZoneID">-600</decimal>
</ProfileDefinition><ProfileDefinition>
<string name="ID">9JsG57bRUu6</string>
<string name="name">Huggies US-EN & CA-EN Test Town Responsive - Prod</string>
<decimal name="AccountID">10954</decimal>
<decimal name="TimeZoneID">-600</decimal>
</ProfileDefinition><ProfileDefinition>
<string name="ID">I3CJQ4gDkK6</string>
<string name="name">Huggies US-EN Brand Desktop - Prod</string>
<decimal name="AccountID">10954</decimal>
<decimal name="TimeZoneID">-600</decimal></ProfileDefinition>
我的代码是
import urllib2
theurl = 'https://ws.webtrends.com/v2/ReportService/profiles/?format=xml'
pagehandle = urllib2.urlopen(theurl)
##########################################################################
from xml.dom.minidom import parseString
file = pagehandle
data = file.read()
file.close()
dom = parseString(data)
xmlTag = dom.getElementsByTagName('string name="ID"')[0].toxml()
xmlData=xmlTag.replace('<string name="ID">','').replace('</string>','')
print xmlTag
print xmlData
我想获取标记名为'string name=“ID”的元素的值
但是错误来了
回溯(最近一次呼叫时间): 文件“C:\Users\Vaibhav\Desktop\Webtrends\test.py”,第43行,在 xmlTag=dom.getElementsByTagName('string name=“ID”')[0].toxml() 索引器错误:列表索引超出范围
如果我换了
dom.getElementsByTagName('string name=“ID”')[0].toxml()
到
dom.getElementsByTagName('string')[0].toxml()
输出来了
“nCGhwaZNpy6”
因为它是列表中的第一个元素 但第二个因素是
“2013年11月2日斯科特移动”
也会被保存在我不想要的列表中
但是有两个字符串标记name=“ID”和name=“name” 如何仅访问name=“ID”的字符串标记
string name="ID"
不是标记名。只有string
是标记名。必须比较每个
string
标记的name属性值。我建议您使用lxml或BeautifulSoup。
下面是使用lxml的等效代码。
相关问题 更多 >
编程相关推荐