我想打印標籤id,如果它有一個id。如果標籤沒有標識但是有類,我希望它能打印類。如果沒有id或class,我希望它打印標籤名稱(img,h1等)。它只需要一個打印文件,如id或class或tag,但不是全部。它需要始終支持第一個ID,然後是班級,然後是標籤名稱,但只能顯示其中一個。它用於輸出sass(如css)模板。檢查元組列表中的字符串,然後訪問它打印它
我要看看「身份證」是元組名單(它是):
[('class', 'title'), ('id', 'donkey'), ('src', 'images/DonkeyKongLogo.png')]
列表稱爲ATTRS。這是我的代碼,看看'id'是否在attrs:
它檢查第一個元組,看看下一個元組中的'class'和'title',但沒有'id',所以它進入下一個元組如果聲明(從未找到'id')。任何幫助讚賞。謝謝。
def handle_starttag(self, tag, attrs):
if attrs != []:
for attr in attrs:
if ('id' in attr):
id = attr.index('id')
self.the_file.writelines(self.indent * self.getpos()[1] + '#' + attr[id+1] + ' {' +'\n')
self.pos = self.getpos()[1]
break
elif ('class' in attr):
clas = attr.index('class')
self.the_file.writelines(self.indent * self.getpos()[1] + "." + attr[clas+1] + " {"+'\n')
self.pos = self.getpos()[1]
break
else:
self.the_file.writelines(self.indent * self.getpos()[1] + tag + " {"+'\n')
self.pos = self.getpos()[1]
break
如果這些'break'語句需要保持,那麼你總是**僅限**處理第一個值。在這種情況下,你可以簡單地這樣做:'如果attrs:','attr = attrs [0]'並且去掉'for'循環。但是,這聽起來不對。 –