2017-02-28 128 views
0

我想打印的所有標籤(僅標籤名稱),我有一個問題加入:獲得來自XML的所有標籤名(僅標籤名稱)

DEXML = urlopen('# the URL of the XML') 

tree_DE = ET.parse(DEXML) 

root_DE = tree_DE.findall('.//*') 
a = [] 

for element in list(set(root_DE)): 
    x = str(element) 
    m = re.search("'[a-zA-Z]+'", x) 
    m = ",".join() 
    a.append(m) 

print(a) 

運行該代碼的後錯誤是:
TypeError: join() takes exactly one argument (0 given)

+0

這是虛弱無力的我打印我列表中沒有額外的字符。 例:結果 之一: 「<元素 'pubdate的' 在0x00000000035DDEA8>」 我只想要:pubdate的 – Barak

+0

爲什麼正則表達式?爲什麼不''element.tag'? – Parfait

+0

謝謝Parfait,我用element.tag做了。 – Barak

回答

0
DEXML = urlopen('# the URL of the XML') 

tree_DE = ET.parse(DEXML) 

root_DE = tree_DE.findall('.//*') 
a = [] 

for element in list(set(root_DE)): 
    x = str(element) 
    seq = re.search("'[a-zA-Z]+'", x) 
    # add seq argument 
    m = ",".join(seq) 
    a.append(m) 

print(a) 
+0

我無法下載並安裝seq: 拒絕:--no-install,--no-download,--build和--no-clean已棄用。請參閱https://github.com/pypa/pip/issues/906。 下載/解壓縮seq 找不到任何滿足要求的下載seq 正在清理... 找不到任何分發seq 將失敗的調試日誌存儲在C:\ Users \ barak-s \ pip \ pip中。日誌 – Barak

+0

seq是一個變量,可能是xy或baraks_variable .......連接缺少參數means = join(缺少參數在這裏)...... syntax:str.join(sequence) –

0

正確的做法:

PRD_XML = urlopen('URL.xml_1') 
DEX_ML = urlopen('URL.xml_2') 

for event, element in ET.iterparse(PRD_XML): 
    PRD_tags.append(element.tag) 

for event_2, element_2 in ET.iterparse(DEX_ML): 
    DE_tags.append(element_2.tag) 


def compare(): 
    if not [item for item in PRD_tags if item in DE_tags]: 
     return False 
    return True 

assert_false(compare(), "no match")