我是新手程序员,试图制作一个解析xml并将其内容粘贴到频道上的irc机器人。通常我会在谷歌上找到我的答案,但这次我找不到答案。
q0tag = dom.getElementsByTagName('hit')[0].toxml()
q0 = q0tag.replace('<hit>','').replace('</hit>','')
q1 = (q0 * 1.2)
当我试图乘以q0时,它总是显示
TypeError: can't multiply sequence by non-int of type 'float'.
我试图让q0 int或float但它只是犯了另一个错误
AttributeError: 'NoneType' object has no attribute 'replace'
q0值是一个没有小数的圆数。
答案 0 :(得分:15)
你的q0值仍然是一个字符串。这基本上就是你在做的事情:
>>> q0 = '3'
>>> q1 = (q0 * 1.2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'float'
要解决此问题,请先将字符串转换为数字:
>>> q1 = (float(q0) * 1.2)
>>> q1
3.5999999999999996
您可能还想查看lxml和BeautifulSoup模块以解析XML。
答案 1 :(得分:1)
Toxml()
生成字符串(请参阅例如http://docs.python.org/library/xml.dom.minidom.html)。 Replace
也会生成一个字符串,因此q0
是一个字符串。