我从TED演讲中得到了一个 XML文件,其结构如下:
<xml language="it"><file id="1">
<head>
<url>http://www.ted.com/talks/travis_kalanick_uber_s_plan_to_get_more_people_into_fewer_cars</url>
<pagesize>79324</pagesize>
<dtime>Fri Apr 01 01:00:04 CEST 2016</dtime>
<encoding>UTF-8</encoding>
<content-type>text/html; charset=utf-8</content-type>
<keywords>talks, Brand, Internet, business, cars, china, cities, economics, entrepreneur, environment, future, green, india, innovation, invention, investment, mobility, pollution, potential, society, software, sustainability, technology, transportation, web</keywords>
<speaker>Travis Kalanick</speaker>
<talkid>2443</talkid>
<videourl>http://download.ted.com/talks/TravisKalanick_2016.mp4</videourl>
<videopath>talks/TravisKalanick_2016.mp4</videopath>
<date>2016/02/15</date>
<title>Travis Kalanick: Il progetto di Uber di mettere più persone in meno auto</title>
<description>TED Talk Subtitles and Transcript: Uber non ha cominciato con grandi ambizioni di ridurre il traffico e l'inquinamento. Ma quando l'azienda ha decollato, il suo cofondatore Travis Kalanick si è chiesto se ci fosse un modo per far usare Uber alle persone sullo stesso percorso e far loro condividere i tragitti, riducendo allo stesso tempo i costi e l'impronta ecologica. Il risultato: uberPOOL, il servizio di condivisione dell'auto dell'azienda, che nei suoi primi otto mesi ha tolto dalle strade 7.9 milioni di miglia e 1.400 tonnellate di diossido di carbonio dall'aria a Los Angeles. Ora Kalanick afferma che la condivisione dell'auto potrebbe funzionare anche per i pendolari nelle periferie. "Con la tecnologia a disposizione e un po' di leggi intelligenti," afferma, "possiamo trasformare ogni auto in un'auto condivisa e riappropriarci immediatamente delle nostre città."</description>
<transcription>
<seekvideo id="680">Stamattina, vorrei parlarvi del futuro</seekvideo>
<seekvideo id="6064">dei trasporti a guida umana,</seekvideo>
<seekvideo id="9560">di come possiamo ridurre il traffico, l'inquinamento e i parcheggi</seekvideo>
<seekvideo id="15640">mettendo più persone in meno macchine,</seekvideo>
<seekvideo id="19840">e di come possiamo farlo con la tecnologia che sta nelle nostre tasche.</seekvideo>
<seekvideo id="25840">Sì, sto parlando degli smartphone...</seekvideo>
<seekvideo id="28720">non delle auto senza autista.</seekvideo>
<seekvideo id="31120">Ma per cominciare, dobbiamo tornare indietro di oltre 100 anni.</seekvideo>
<seekvideo id="1140160">Grazie mille." TK: "Grazie mille a te."</seekvideo>
<seekvideo id="1142240">(Applauso)</seekvideo>
</transcription>
<translators>
<translator href="http://www.ted.com/profiles/2859034">Maria Carmina Distratto</translator>
</translators>
<reviewers>
<reviewer href="http://www.ted.com/profiles/5006808">Enrica Pillon</reviewer>
</reviewers>
<wordnum>2478</wordnum>
<charnum>14914</charnum>
</head>
<content>Stamattina, vorrei parlarvi del futuro dei trasporti a guida umana, di come possiamo ridurre il traffico, l'inquinamento e i parcheggi mettendo più persone in meno macchine, e di come possiamo farlo con la tecnologia che sta nelle nostre tasche. Sì, sto parlando degli smartphone... non delle auto senza autista.
Ma per cominciare, dobbiamo tornare indietro di oltre 100 anni. Perché si è scoperto che Uber esisteva molto prima di Uber. E se fosse sopravvissuta, il futuro dei trasporti sarebbe probabilmente già qui.
Permettetemi di presentarvi il Jitney. Fu creato o inventato nel 1914 da un tizio di nome LP Draper. Era un venditore di auto di Los Angeles, che ebbe un'idea: stava girando per il centro di Los Angeles, la mia città natale, e vide questi tram con lunghe file di persone che cercavano di andare dove volevano. E si disse: "Beh, perché non mettere un cartello sulla mia macchina per portare le persone ovunque vogliano per un jitney?" Un Jitney è un nichelino, in slang.
Le persone saltarono a bordo. E non solo a Los Angeles, ma in tutto il paese. E nel giro di un anno, il 1915, a Seattle si prendevano 50.000 passaggi al giorno, 45.000 passaggi al giorno in Kansas e 150.000 passaggi al giorno a Los Angeles. Per darvi un'idea, Uber a Los Angeles effettua 157.000 passaggi al giorno oggi, 100 anni dopo.
Ed ecco i tranvieri, color
"Travis, quello che stai creando è davvero incredibile e ti sono grato per averlo condiviso apertamente sul palco di TED.
Grazie mille." TK: "Grazie mille a te."
(Applauso)</content>
</file>
<file id="2">
<head>
<url>http://www.ted.com/talks/magda_sayeg_how_yarn_bombing_grew_into_a_worldwide_movement</url>
<pagesize>77162</pagesize>
<dtime>Fri Apr 01 01:00:32 CEST 2016</dtime>
<encoding>UTF-8</encoding>
<content-type>text/html; charset=utf-8</content-type>
<keywords>talks, TEDYouth, arts, beauty, creativity, entertainment, materials, street art</keywords>
<speaker>Magda Sayeg</speaker>
<talkid>2437</talkid>
<videourl>http://download.ted.com/talks/MagdaSayeg_2015Y.mp4</videourl>
<videopath>talks/MagdaSayeg_2015Y.mp4</videopath>
<date>2015/11/14</date>
<title>Magda Sayeg: Come lo yarn bombing è diventato un movimento internazionale</title>
<description>TED Talk Subtitles and Transcript: L'artista di tessuti Magda Sayeg trasforma i paesaggi urbani nel suo parco giochi personale decorando gli oggetti quotidiani con colorati lavori a maglia e a uncinetto. Queste calde e pelose "bombe di filo" sono partite dalle piccole cose, con i pali degli stop e gli idranti nella città natale di Sayeg, ma presto le persone hanno trovato una connessione con quest'arte e l'hanno diffusa nel mondo. "Viviamo in un questo frenetico mondo digitale, ma desideriamo ancora qualcosa con cui possiamo relazionarci", dice Sayeg. "Si può trovare del potenziale nascosto nei luoghi più impensabili e tutti possediamo doti che aspettano solo di essere scoperte."</description>
<transcription>
<seekvideo id="0">Sono un'artista di tessuti</seekvideo>
<seekvideo id="3080">meglio nota per aver dato inizio allo yarn bombing.</seekvideo>
<seekvideo id="6080">Yarn bombing significa inserire del materiale fatto a maglia</seekvideo>
<seekvideo id="9040">nell'ambiente urbano, tipo graffiti --</seekvideo>
<seekvideo id="11400">o, per la precisione,</seekvideo>
我希望以这样的方式存储所有信息,以使我可以将对话的ID和句子的ID 与其他语言(相同格式)的相同句子进行匹配。
例如,像字典这样的东西: mydict [“ Ted_Talk_ID”] [“ Sentence_ID”]
有什么想法吗?
我尝试了 xml.etree.ElementTree ,但是它没有输出(但是可能出现了一些错误)。我的代码如下:
import xml.etree.ElementTree as ET
root = ET.parse('ted_it-20160408.xml').getroot()
for type_tag in root.findall('url'):
value = type_tag.get('title')
print(value)
谢谢!
(如果有帮助,数据来自https://wit3.fbk.eu/mono.php?release=XML_releases&tinfo=cleanedhtml_ted)
答案 0 :(得分:0)
您可以通过使用 xml.etree.ElementTree 使用,选中此链接https://www.geeksforgeeks.org/xml-parsing-python/
此功能非常适合您使用:
def parseXML(xmlfile):
# create element tree object
tree = ET.parse(xmlfile)
# get root element
root = tree.getroot()
# create empty list for news items
newsitems = []
# iterate news items
for item in root.findall('./channel/item'):
# empty news dictionary
news = {}
# iterate child elements of item
for child in item:
# special checking for namespace object content:media
if child.tag == '{http://search.yahoo.com/mrss/}content':
news['media'] = child.attrib['url']
else:
news[child.tag] = child.text.encode('utf8')
# append news dictionary to news items list
newsitems.append(news)
# return news items list
return newsitems