2017-06-15 116 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)