11

私は、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値は、小数を含まない丸め数値です。

4

2 に答える 2

26

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

XMLを解析するためにlxmlモジュールとBeautifulSoupモジュールを調べることもできます。

于 2012-09-24T18:45:02.063 に答える
1

Toxml()文字列を生成します(たとえば、http ://docs.python.org/library/xml.dom.minidom.htmlを参照)。Replace文字列も生成するので、文字列も生成されq0ます。

于 2012-09-24T18:49:33.120 に答える