2017-06-15 197 views
-3
<lib name="atl80.dll" bl="0"> 
    <fcts> 
    <fct od="15" bl="0">AtlComModuleGetClassObject</fct> 
    <fct od="18" bl="1">AtlComModuleRegisterServer</fct> 
    <fct od="22" bl="1">AtlComModuleUnregisterServer</fct> 
    <fct od="23" bl="1">AtlUpdateRegistryFromResourceD</fct> 
    <fct od="30" bl="0">AtlComPtrAssign</fct> 
    <fct od="31" bl="0">AtlComQIPtrAssign</fct> 
    <fct od="32" bl="0">AtlInternalQueryInterface</fct> 
    <fct od="34" bl="0">AtlGetVersion</fct> 
    <fct od="58" bl="0">AtlModuleAddTermFunc</fct> 
    <fct od="61" bl="1">AtlCreateRegistrar</fct> 
    <fct od="64" bl="0">AtlCallTermFunc</fct> 

嗨,我想解析XML文件,重複它的內容和提取: [1]的lib名 [2]提取FCT標籤文本如果BL = 1解析XML文件蟒蛇

我應該如何解析XML並提取此信息?

謝謝!

+0

你嘗試過什麼? –

+1

顯示你先試過的,不能做的。 – wolfsgang

+0

使用python模塊** lxml **或** bs4 ** – Stack

回答

0

下面是一個例子,

html = """<lib name="atl80.dll" bl="0"> 
    <fcts> 
    <fct od="15" bl="0">AtlComModuleGetClassObject</fct> 
    <fct od="18" bl="1">AtlComModuleRegisterServer</fct> 
    <fct od="22" bl="1">AtlComModuleUnregisterServer</fct> 
    <fct od="23" bl="1">AtlUpdateRegistryFromResourceD</fct> 
    <fct od="30" bl="0">AtlComPtrAssign</fct> 
    <fct od="31" bl="0">AtlComQIPtrAssign</fct> 
    <fct od="32" bl="0">AtlInternalQueryInterface</fct> 
    <fct od="34" bl="0">AtlGetVersion</fct> 
    <fct od="58" bl="0">AtlModuleAddTermFunc</fct> 
    <fct od="61" bl="1">AtlCreateRegistrar</fct> 
    <fct od="64" bl="0">AtlCallTermFunc</fct> 

""" 


from bs4 import BeautifulSoup as b 

soup = b(html, 'html.parser') 
fct = soup.find_all(bl="1") 
#get parent name 
parent_name = fct[0].parent.parent['name'] 
# get all fct tag text 
fct = [i.text for i in fct] 

print(parent_name) 
print(fct)