我有這個xml 檔案:
<cv xmlns="http://hr.joinvision.com/xml/3_0">
<personalInformation>
<firstname>Bernard</firstname>
<lastname>Henry</lastname>
<gender>
<code>m</code>
<name>Monsieur</name>
</gender>
<title>Exec. MBA</title>
<isced>
<code>5A</code>
<name>Ma?trise universitaire ou ?quivalent</name>
</isced>
<address/>
<email>[email protected]</email>
<phoneNumber>0617135919</phoneNumber>
</personalInformation>
<work>
<phase>
<dateFrom>1981-01-01 01:00</dateFrom>
<dateTo>1984-01-01 01:00</dateTo>
<dateFromFuzzy>1981</dateFromFuzzy>
<dateToFuzzy>1984</dateToFuzzy>
<duration>36</duration>
<current>false</current>
<operationArea>
<code>ass</code>
<name>Assistance</name>
<weight>1.0</weight>
</operationArea>
<operationArea>
<code>pm</code>
<name>Direction de Projet</name>
<weight>1.0</weight>
</operationArea>
<operationArea>
<code>secr</code>
<name>Bureau du Secr?taire</name>
<weight>1.0</weight>
</operationArea>
<operationArea>
<code>offi</code>
<name>Gestion du Bureau</name>
<weight>1.0</weight>
</operationArea>
<operationArea>
<code>sale</code>
<name>Ventes en G?n?ral</name>
<weight>1.0</weight>
</operationArea>
<operationArea>
<code>retai</code>
<name>Vente au D?tail</name>
<weight>0.7</weight>
</operationArea>
<topic>"TV-Vid?o"</topic>
<comments>Adjoint chef r?gional des ventes "TV-Vid?o"(CA de 60 M?)
1980-81
Attach? commercial (CA de 6 M?)</comments>
<plainText>* Soci?t? PHILIPS
1981-84
Adjoint chef r?gional des ventes "TV-Vid?o"(CA de 60 M?)
1980-81
Attach? commercial (CA de 6 M?)</plainText>
<company>PHILIPS</company>
<function>Adjoint chef</function>
<position>
<code>mgmtl</code>
<name>Chef d'?quipe</name>
</position>
<project>false</project>
</phase>
<phase>
<dateFrom>1978-01-01 01:00</dateFrom>
<dateTo>2021-12-01 01:00</dateTo>
<dateFromFuzzy>1978</dateFromFuzzy>
<dateToFuzzy>2021-12</dateToFuzzy>
<duration>516</duration>
<current>true</current>
<location>
<postcode>40210</postcode>
<city>D?sseldorf</city>
<country>
<code>DE</code>
<name>Allemagne</name>
</country>
<state>Nordrhein-Westfalen</state>
</location>
<operationArea>
<code>mark</code>
<name>Marketing</name>
<weight>1.0</weight>
</operationArea>
<industry>
<code>72</code>
<name>Recherche d?veloppement scientifique</name>
<weight>1.0</weight>
</industry>
<comments>79
Charg? de d?velopper, en Allemagne, des activit?s publi-promotionnelles en faveur de vins et alcools fran?ais</comments>
<plainText>* SOPEXA Deutschland - D?sseldorf
1978-79
Charg? de d?velopper, en Allemagne, des activit?s publi-promotionnelles en faveur de vins et alcools fran?ais</plainText>
<company>SOPEXA Deutschland</company>
<position>
<code>ma</code>
<name>Employ?</name>
</position>
<project>false</project>
</phase>
<phase>
<dateFrom>1976-01-01 01:00</dateFrom>
<dateTo>1978-01-01 01:00</dateTo>
<dateFromFuzzy>1976</dateFromFuzzy>
<dateToFuzzy>1978</dateToFuzzy>
<duration>24</duration>
<current>false</current>
<location>
<country>
<code>FR</code>
<name>France</name>
</country>
</location>
<location>
<city>New York</city>
<country>
<code>US</code>
<name>?tats-Unis</name>
</country>
</location>
<operationArea>
<code>retai</code>
<name>Vente au D?tail</name>
<weight>1.0</weight>
</operationArea>
<operationArea>
<code>adve</code>
<name>Publicit?</name>
<weight>0.7</weight>
</operationArea>
<operationArea>
<code>mark</code>
<name>Marketing</name>
<weight>0.7</weight>
</operationArea>
<operationArea>
<code>ware</code>
<name>Entreposage / Logistique des Marchandises</name>
<weight>0.7</weight>
</operationArea>
<comments>* FOOD AND WINES FROM FRANCE Inc. (SOPEXA USA) - New York
Responsable local de la mise en place de campagnes publi-promotionnelles (pour vins et fromages fran?ais) aupr?s de la distribution sur plusieurs r?gions des USA</comments>
<plainText>* FOOD AND WINES FROM FRANCE Inc. (SOPEXA USA) - New York
1976-78
Responsable local de la mise en place de campagnes publi-promotionnelles (pour vins et fromages fran?ais) aupr?s de la distribution sur plusieurs r?gions des USA</plainText>
<company>FRANCE Inc.</company>
<function>Responsable</function>
<position>
<code>ma</code>
<name>Employ?</name>
</position>
<project>false</project>
</phase>
<phase>
<dateFrom>2020-01-01 01:00</dateFrom>
<dateFromFuzzy>2020-01</dateFromFuzzy>
<subphase>false</subphase>
<current>false</current>
<comments>negociation-bhfc.f r - [email protected] - 0617135919</comments>
<plainText>Janvier 2020 - negociation-bhfc.f r - [email protected] - 0617135919</plainText>
<company>negociation-bhfc.f r</company>
<position>
<code>ma</code>
<name>Employ?</name>
</position>
<project>false</project>
</phase>
</work>
<education>
<phase>
<dateFrom>1984-01-01 01:00</dateFrom>
<dateFromFuzzy>1984</dateFromFuzzy>
<duration>12</duration>
<current>false</current>
<comments>Sciences de l'Education</comments>
<plainText>1984 Sciences de l'Education</plainText>
<completed>true</completed>
</phase>
<phase>
<dateFrom>1976-01-01 01:00</dateFrom>
<dateFromFuzzy>1976</dateFromFuzzy>
<duration>12</duration>
<current>false</current>
<operationArea>
<code>elec</code>
<name>Ing?nierie ?lectrique/?lectronique</name>
<weight>1.0</weight>
</operationArea>
<comments>Dipl?me H.E.C.
Langues: Anglais courant - Allemand</comments>
<plainText>1976 Dipl?me H.E.C. Langues: Anglais courant - Allemand</plainText>
<isced>
<code>2</code>
<name>Enseignement secondaire (premier cycle)</name>
</isced>
<educationType>
<code>ed68</code>
<name>Dipl?me</name>
</educationType>
<completed>true</completed>
</phase>
<phase>
<dateFrom>1984-01-01 01:00</dateFrom>
<dateTo>2020-01-01 01:00</dateTo>
<dateFromFuzzy>1984</dateFromFuzzy>
<dateToFuzzy>2020</dateToFuzzy>
<duration>432</duration>
<current>false</current>
<location>
<postcode>75001</postcode>
<city>PARIS, HEC, PONTS Paris</city>
<country>
<code>FR</code>
<name>France</name>
</country>
<state>?le-de-France</state>
</location>
<skill>
<code>masch</code>
<name>Construction de Machines</name>
<weight>1.0</weight>
</skill>
<skill>
<code>o</code>
<name>Oracle</name>
<weight>0.9</weight>
</skill>
<skill>
<code>lawye</code>
<name>Avocat</name>
<weight>0.8</weight>
</skill>
<operationArea>
<code>sale</code>
<name>Ventes en G?n?ral</name>
<weight>1.0</weight>
</operationArea>
<operationArea>
<code>cc</code>
<name>Helpdesk/Support Technique</name>
<weight>0.7</weight>
</operationArea>
<operationArea>
<code>retai</code>
<name>Vente au D?tail</name>
<weight>0.5</weight>
</operationArea>
<operationArea>
<code>advoc</code>
<name>Carri?re Judiciaire</name>
<weight>0.4</weight>
</operationArea>
<operationArea>
<code>pm</code>
<name>Direction de Projet</name>
<weight>1.0</weight>
</operationArea>
<operationArea>
<code>cust</code>
<name>Service ? la Client?le</name>
<weight>1.0</weight>
</operationArea>
<topic>" Responsable des achats "</topic>
<comments>Interventions en:
N?gociation raisonn?e/r?solution de conflit . N?gociation commerciale
Formation de formateurs/ing?nierie p?dagogique . Management
* Exemples de mission:
Formation ? la n?gociation et la r?solution de conflits (en fran?ais ou en anglais) :
* de managers, ing?nieurs, chefs de projet (CNES, ONERA, INGEROP, RAZEL, DGAC)
* de vendeurs (ORACLE, VEOLIA, CASINO, BNPP)
* d'acheteurs (SG, SANOFI, LAFARGE Ciment, CASINO, C-DISCOUNT)
* d'avocats (FIDAL 2017-2018 et ETELIO 2019)
* d'?tudiants (CENTRALE PARIS, HEC, PONTS Paris Tech, MINES Paris Tech, ?cole)
POLYTECHNIQUE, Corps des MINES, Corps des PONTS
Interventions
dans des projets de formation de dimension internationale et interculturelle (en fran?ais ou anglais) pour acheteurs (LAFARGE, TOTAL) ou managers (SAINT GOBAIN)
Executive MBA HEC : workshop sur la n?gociation raisonn?e (2018)
MBA sp?cialis? " Responsable des achats " de l'Institut LEONARD DE VINCI (class? 7?me)
MBA-Achats de France en 2016): formation de ces futurs acheteurs ? la n?gociation raisonn?e
Interventions ? l'?tranger : au Canada pour LAFARGE (acheteurs - 2001), au Gabon pour
VEOLIA (acheteurs - 2010) et au Maroc pour JESA/OCP (acheteurs - 2017-20) et SAHAM (2018)</comments>
<plainText>1984-2020
* Interventions en:
. N?gociation raisonn?e/r?solution de conflit . N?gociation commerciale
. Formation de formateurs/ing?nierie p?dagogique . Management
* Exemples de mission:
Formation ? la n?gociation et la r?solution de conflits (en fran?ais ou en anglais) :
* de managers, ing?nieurs, chefs de projet (CNES, ONERA, INGEROP, RAZEL, DGAC)
* de vendeurs (ORACLE, VEOLIA, CASINO, BNPP)
* d'acheteurs (SG, SANOFI, LAFARGE Ciment, CASINO, C-DISCOUNT)
* d'avocats (FIDAL 2017-2018 et ETELIO 2019)
* d'?tudiants (CENTRALE PARIS, HEC, PONTS Paris Tech, MINES Paris Tech, ?cole
POLYTECHNIQUE, Corps des MINES, Corps des PONTS)
Interventions
dans des projets de formation de dimension internationale et interculturelle (en fran?ais ou anglais) pour acheteurs (LAFARGE, TOTAL) ou managers (SAINT GOBAIN)
Executive MBA HEC : workshop sur la n?gociation raisonn?e (2018)
MBA sp?cialis? " Responsable des achats " de l'Institut LEONARD DE VINCI (class? 7?me
MBA-Achats de France en 2016): formation de ces futurs acheteurs ? la n?gociation raisonn?e
Interventions ? l'?tranger : au Canada pour LAFARGE (acheteurs - 2001), au Gabon pour
VEOLIA (acheteurs - 2010) et au Maroc pour JESA/OCP (acheteurs - 2017-20) et SAHAM (2018)
Bernard HENRY Formation Conseil</plainText>
<isced>
<code>3</code>
<name>Enseignement secondaire (deuxi?me cycle)</name>
</isced>
<educationType>
<code>ed55</code>
<name>?cole secondaire compr?hensive</name>
</educationType>
<schoolname>?cole POLYTECHNIQUE</schoolname>
<graduation>Executive MBA</graduation>
<graduation>Executive MBA HEC</graduation>
<graduation>MBA</graduation>
<completed>true</completed>
</phase>
</education>
<publications/>
<additionalInformation>
<language>
<code>DE</code>
<name>Allemand</name>
<level>
<code>C1</code>
<name>Courant</name>
</level>
</language>
<language>
<code>FR</code>
<name>Fran?ais</name>
</language>
<language>
<code>EN</code>
<name>Anglais</name>
</language>
<interests>DE CONSULTANT-FORMATEUR - 1984-2020
* Interventions en:
. N?gociation raisonn?e/r?solution de conflit . N?gociation commerciale
. Formation de formateurs/ing?nierie p?dagogique . Management
* Exemples de mission:
Formation ? la n?gociation et la r?solution de conflits (en fran?ais ou en anglais) :
* de managers, ing?nieurs, chefs de projet (CNES, ONERA, INGEROP, RAZEL, DGAC)
* de vendeurs (ORACLE, VEOLIA, CASINO, BNPP)
* d'acheteurs (SG, SANOFI, LAFARGE Ciment, CASINO, C-DISCOUNT)
* d'avocats (FIDAL 2017-2018 et ETELIO 2019)
* d'?tudiants (CENTRALE PARIS, HEC, PONTS Paris Tech, MINES Paris Tech, ?cole
POLYTECHNIQUE, Corps des MINES, Corps des PONTS)
Interventions
dans des projets de formation de dimension internationale et interculturelle (en fran?ais ou anglais) pour acheteurs (LAFARGE, TOTAL) ou managers (SAINT GOBAIN)
Executive MBA HEC : workshop sur la n?gociation raisonn?e (2018)
MBA sp?cialis? " Responsable des achats " de l'Institut LEONARD DE VINCI (class? 7?me
MBA-Achats de France en 2016): formation de ces futurs acheteurs ? la n?gociation raisonn?e
Interventions ? l'?tranger : au Canada pour LAFARGE (acheteurs - 2001), au Gabon pour
VEOLIA (acheteurs - 2010) et au Maroc pour JESA/OCP (acheteurs - 2017-20) et SAHAM (2018)
Bernard HENRY Formation Conseil
Janvier 2020 - negociation-bhfc.f r - [email protected] - 0617135919</interests>
</additionalInformation>
<objectives/>
<statistics>
<codeSummary>
<code>72</code>
<name>Recherche d?veloppement scientifique</name>
<weight>100.0</weight>
<duration>528</duration>
<domain>NACE</domain>
</codeSummary>
<codeSummary>
<code>o</code>
<name>Oracle</name>
<weight>67.0</weight>
<duration>433</duration>
<domain>Skill</domain>
</codeSummary>
<codeSummary>
<code>lawye</code>
<name>Avocat</name>
<weight>59.0</weight>
<duration>433</duration>
<domain>Skill</domain>
</codeSummary>
<codeSummary>
<code>masch</code>
<name>Construction de Machines</name>
<weight>74.0</weight>
<duration>433</duration>
<domain>Skill</domain>
</codeSummary>
<codeSummary>
<code>ma</code>
<name>Employ?</name>
<weight>100.0</weight>
<duration>552</duration>
<domain>Position</domain>
</codeSummary>
<codeSummary>
<code>cc</code>
<name>Helpdesk/Support Technique</name>
<weight>26.0</weight>
<duration>433</duration>
<domain>OperationArea</domain>
</codeSummary>
<codeSummary>
<code>mark</code>
<name>Marketing</name>
<weight>100.0</weight>
<duration>552</duration>
<domain>OperationArea</domain>
</codeSummary>
<codeSummary>
<code>cust</code>
<name>Service ? la Client?le</name>
<weight>37.0</weight>
<duration>433</duration>
<domain>OperationArea</domain>
</codeSummary>
<codeSummary>
<code>advoc</code>
<name>Carri?re Judiciaire</name>
<weight>15.0</weight>
<duration>433</duration>
<domain>OperationArea</domain>
</codeSummary>
<codeSummary>
<code>pm</code>
<name>Direction de Projet</name>
<weight>37.0</weight>
<duration>469</duration>
<domain>OperationArea</domain>
</codeSummary>
<codeSummary>
<code>retai</code>
<name>Vente au D?tail</name>
<weight>19.0</weight>
<duration>494</duration>
<domain>OperationArea</domain>
</codeSummary>
<codeSummary>
<code>sale</code>
<name>Ventes en G?n?ral</name>
<weight>37.0</weight>
<duration>469</duration>
<domain>OperationArea</domain>
</codeSummary>
<codeSummary>
<code>DE</code>
<name>Allemagne</name>
<weight>100.0</weight>
<duration>528</duration>
<domain>ISOCountry</domain>
</codeSummary>
<codeSummary>
<code>FR</code>
<name>France</name>
<weight>74.0</weight>
<duration>458</duration>
<domain>ISOCountry</domain>
</codeSummary>
</statistics>
</cv>
我想從中獲取資料所以我使用:
def personal_infos(xml):
tree = et.fromstring(xml)
namespace = tree.xpath('namespace-uri(.)')
firstname = tree.find(".//{%s}firstname" % namespace).text
lastname = tree.find(".//{%s}lastname"% namespace).text
email = tree.find(".//{%s}email"% namespace).text
gender = tree.find(".//{%s}code"% namespace).text
phone = tree.find(".//{%s}phoneNumber"% namespace).text
personal_infos = ({"first_name":firstname,"last_name":lastname,"gender":gender,"email":email,"phone_number":phone})
print(personal_infos)
我想知道如何創建一個回圈來獲取所有內容,因為<work>我有很多<phases>我不能使用相同的代碼
我需要的例子:
我需要從作業中提取所有資訊(datefrom、dateto、current、operation area...)
我試過這個:
def work_infos(xml):
f = io.StringIO(xml)
tree = ET.parse(f)
root = tree.getroot()
for elem in root.iter():
for p in tree.findall('.//work//phase'):
df = tree.find('.//dateFrom')
dateTo = tree.find('.//dateTo')
它回傳 nothing
我是 Python 新手,任何型別的指南都會有所幫助,謝謝
uj5u.com熱心網友回復:
其實ETree也可以做這個任務,不過我比較熟悉BeautifulSoup。無論如何,它們都有類似的方法來處理 XML 資料。
如果使用BeautifulSoup,首先,使用find_all('phase')來獲取作業中所有階段的串列。然后,遍歷串列并一一檢索值。使用.text.strip()獲得的文本節點,并確保有在第一和最后的位置沒有空間。將它們創建為 dict 并一一附加到串列中。最后,使用 將 dict 串列轉換為資料框pd.DataFrame。
from bs4 import BeautifulSoup
def find_tag(tag_name):
try:
return phase.find(tag_name).text.strip()
except:
return None
xml_doc = BeautifulSoup('<your_xml>','lxml')
phases = xml_doc.find_all('phase')
phase_list = list()
for phase in phases:
phase_dict = dict()
phase_dict['datefrom'] = find_tag('datefrom')
phase_dict['dateto'] = find_tag('dateto')
phase_dict['datefromfuzzy'] = find_tag('datefromfuzzy')
phase_dict['datetofuzzy'] = find_tag('datetofuzzy')
phase_dict['duration'] = find_tag('duration')
# continue to extract next value node here
# ...
phase_list.append(phase_dict)
df = pd.DataFrame(phase_list)
print(df)
輸出:
datefrom dateto datefromfuzzy datetofuzzy duration 0 1981-01-01 01:00 1984-01-01 01:00 1981 1984 36 1 1978-01-01 01:00 2021-12-01 01:00 1978 2021-12 516 2 1976-01-01 01:00 1978-01-01 01:00 1976 1978 24 3 2020-01-01 01:00 None 2020-01 None None 4 1984-01-01 01:00 None 1984 None 12 5 1976-01-01 01:00 None 1976 None 12 6 1984-01-01 01:00 2020-01-01 01:00 1984 2020 432
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/378874.html
