私はいくつかのxmlを持っています:
<sporsmal_liste>
<sporsmal>
<versjon>1.0</versjon>
<besvart_av>
<versjon>1.0</versjon>
<doedsdato>0001-01-01T00:00:00</doedsdato>
<etternavn>Giske</etternavn>
<foedselsdato>1966-11-07T00:00:00</foedselsdato>
<fornavn>Trond</fornavn>
<id>TG</id>
<kjoenn>mann</kjoenn>
</besvart_av>
<besvart_av_minister_id>NHD</besvart_av_minister_id>
<besvart_av_minister_tittel>nærings- og handelsministeren</besvart_av_minister_tittel>
<besvart_dato>2010-10-11T00:00:00</besvart_dato>
<besvart_pa_vegne_av i:nil="true"/>
<besvart_pa_vegne_av_minister_id i:nil="true"/>
<besvart_pa_vegne_av_minister_tittel i:nil="true"/>
<datert_dato>2010-09-30T00:00:00</datert_dato>
<emne_liste/>
<flyttet_til>ikke_spesifisert</flyttet_til>
<fremsatt_av_annen i:nil="true"/>
<id>47703</id>
<rette_vedkommende i:nil="true"/>
<rette_vedkommende_minister_id i:nil="true"/>
<rette_vedkommende_minister_tittel i:nil="true"/>
<sendt_dato>2010-10-01T00:00:00</sendt_dato>
<sesjon_id>2009-2010</sesjon_id>
<sporsmal_fra>
<versjon>1.0</versjon>
<doedsdato>0001-01-01T00:00:00</doedsdato>
<etternavn>Nørve</etternavn>
<foedselsdato>1951-03-29T00:00:00</foedselsdato>
<fornavn>Elisabeth Røbekk</fornavn>
<id>ELN</id>
<kjoenn>kvinne</kjoenn>
<fylke>
<versjon>1.0</versjon>
<id>MR</id>
<navn>Møre og Romsdal</navn>
</fylke>
<parti>
<versjon>1.0</versjon>
<id>H</id>
<navn>Høyre</navn>
</parti>
</sporsmal_fra>
<sporsmal_nummer>1808</sporsmal_nummer>
<sporsmal_til>
<versjon>1.0</versjon>
<doedsdato>0001-01-01T00:00:00</doedsdato>
<etternavn>Giske</etternavn>
<foedselsdato>1966-11-07T00:00:00</foedselsdato>
<fornavn>Trond</fornavn>
<id>TG</id>
<kjoenn>mann</kjoenn>
</sporsmal_til>
<sporsmal_til_minister_id>NHD</sporsmal_til_minister_id>
<sporsmal_til_minister_tittel>nærings- og handelsministeren</sporsmal_til_minister_tittel>
<status>besvart</status>
<tittel>Jeg viser til ... [longer text a have shortend..]</tittel>
<type>skriftlig_sporsmal</type>
</sporsmal>
<sporsmal> ... another sporsmal (question) </sporsmal>
<sporsmal> en the next one.... </sporsmal>
..more of these..
</sporsmal_liste>
私は今までこれを処理してきました:
from bs4 import BeautifulSoup
soup = BeautifulSoup(r.content) # where r.content is the xml (result from requests.get(url))
for question in soup.find_all('sporsmal'):
# to get the id of the person this is a question to (sporsmal_til) I would:
print question.sporsmal_fra.id.text
これは機能します。質問をした人の ID であるELNを返します。問題はアイテム自体の ID (< sporsmal >) にあり、それは47703ですが、「通常の方法」では取得できないようです:
for question in soup.find_all('sporsmal'):
print question.id.text #this returns **TG**
「TG」は次の結果でなければなりません
question.besvart_av.id.text
# answered by
また
question.sporsmal_til.id.text
# question for
# it's the same dude that is asked to answer, and who answers the question
そしてそうです。これらはどちらもTGを返しますが、
question.id.text
47703を返す必要がありますが、そうではありません。(または、他にどのように ID 47703 を取得できますか?)
それで、私はここで何が間違っていますか?
PS: ここにある xml は、ノルウェー語以外の人にとっては多少混乱する可能性があるため、例では混乱の少ない名前の他のフィールドを編集して選択しました。