R:从特定XML节点集中提取数据

时间:2018-04-19 11:08:40

标签: r xml node-set

我正在尝试从XML文件中提取一些值。这个XML包含多个spreekbeurten' (演讲)来自议会议员。每个' spreekbeurt&​​#39;有一位发言人(议会议员)和' partij' (成员的一方)。可能是发言人不是党员;所以没有派对。这个特定的XML文件有105' spreekbeurten'。所以我的目标是为每个' spreekbeurt&​​#39;

检索以下值
//spreekbeurt/spreker/naam/achternaam #(surname of speaker)
//spreekbeurt/spreker/politiek   #(party of member)
//spreekbeurt/tekst/al-groep/al #(contains text of the 'spreekbeurt')

有关XML文件的摘录

,请参阅下文

Per' spreekbeurt&​​#39;我想提取值。每个spreekbeurt值一个一个地提取的原因是因为我想为“政治家”添加NA。如果它丢失了。

R-代码

 xml_file = xmlParse(paste0(getwd(),'/Xml/',dfRSS$Xml[23],'.xml'))
  xml_object = read_xml(paste0(getwd(),'/Xml/',dfRSS$Xml[23],'.xml'))

  titel = xml_object %>% 
    xml_find_all("//item-titel") %>%
    as_list() %>% unlist 

  spreekbeurt = xml_object %>% 
    xml_find_all("//spreekbeurt")

tekst = spreekbeurt[2]  %>% 
  xml_find_first("//spreekbeurt/tekst/al-groep/al") %>%
  as_list() %>% unlist

naam = spreekbeurt[2]  %>% 
  xml_find_first("//spreekbeurt/spreker/naam/achternaam") %>%
  as_list() %>% unlist 

partij = spreekbeurt[2]  %>% 
  xml_find_first("//spreekbeurt/spreker/politiek") %>%
  as_list() %>% unlist 
  • xml_find_first返回节点集中的第一个,即使我申请了 spreekbeurt [2]
  • xml_find_all返回所有节点集。

我怎样才能检索上面R中编码的第二个节点集的值?

其他信息:

spreekbeurt的结果:

{xml_nodeset (105)}
 [1] <spreekbeurt nieuw="ja">\n  <spreker><voorvoegsels>De heer</voorvoegsels><naam><achternaam>Bisschop</achternaam ...
 [2] <spreekbeurt nieuw="nee">\n  <spreker><voorvoegsels>De</voorvoegsels><naam><achternaam>voorzitter</achternaam>< ...
 [3] <spreekbeurt nieuw="ja">\n  <spreker><voorvoegsels>Mevrouw</voorvoegsels><naam><achternaam>Voortman</achternaam ...
 [4] <spreekbeurt nieuw="ja">\n  <spreker><voorvoegsels>De heer</voorvoegsels><naam><achternaam>Verhoeven</achternaa ...
 [5] <spreekbeurt nieuw="ja">\n  <spreker><voorvoegsels>Mevrouw</voorvoegsels><naam><achternaam>Keijzer</achternaam> ...
 [6] <spreekbeurt nieuw="ja">\n  <spreker><voorvoegsels>De heer</voorvoegsels><naam><achternaam>Voordewind</achterna ...
 [7] <spreekbeurt nieuw="nee">\n  <spreker><voorvoegsels>De</voorvoegsels><naam><achternaam>voorzitter</achternaam>< ...
 [8] <spreekbeurt nieuw="ja">\n  <spreker><voorvoegsels>De heer</voorvoegsels><naam><achternaam>Harbers</achternaam> ...
 [9] <spreekbeurt nieuw="ja">\n  <spreker><voorvoegsels>De heer</voorvoegsels><naam><achternaam>Van Raak</achternaam ...
[10] <spreekbeurt nieuw="ja">\n  <spreker><voorvoegsels>Mevrouw</voorvoegsels><naam><achternaam>Kuiken</achternaam>< ...
[11] <spreekbeurt nieuw="ja">\n  <spreker><voorvoegsels>Mevrouw</voorvoegsels><naam><achternaam>Agema</achternaam></ ...
[12] <spreekbeurt nieuw="nee">\n  <spreker><voorvoegsels>De heer</voorvoegsels><naam><achternaam>Van Raak</achternaa ...
[13] <spreekbeurt nieuw="nee">\n  <spreker><voorvoegsels>Mevrouw</voorvoegsels><naam><achternaam>Agema</achternaam>< ...
[14] <spreekbeurt nieuw="nee">\n  <spreker><voorvoegsels>De heer</voorvoegsels><naam><achternaam>Van Raak</achternaa ...
[15] <spreekbeurt nieuw="nee">\n  <spreker><voorvoegsels>Mevrouw</voorvoegsels><naam><achternaam>Agema</achternaam>< ...
[16] <spreekbeurt nieuw="nee">\n  <spreker><voorvoegsels>Mevrouw</voorvoegsels><naam><achternaam>Voortman</achternaa ...
[17] <spreekbeurt nieuw="nee">\n  <spreker><voorvoegsels>Mevrouw</voorvoegsels><naam><achternaam>Agema</achternaam>< ...
[18] <spreekbeurt nieuw="nee">\n  <spreker><voorvoegsels>Mevrouw</voorvoegsels><naam><achternaam>Voortman</achternaa ...
[19] <spreekbeurt nieuw="nee">\n  <spreker><voorvoegsels>Mevrouw</voorvoegsels><naam><achternaam>Agema</achternaam>< ...
[20] <spreekbeurt nieuw="nee">\n  <spreker><voorvoegsels>Mevrouw</voorvoegsels><naam><achternaam>Voortman</achternaa ...
...

XML文件摘要:

<spreker>

  <voorvoegsels>De heer</voorvoegsels>

  <naam>

    <achternaam>Bisschop</achternaam>

  </naam> (<politiek>SGP</politiek>):</spreker>

<tekst status="goed">

  <al-groep>

    <al>Voorzitter. Ik ging ervan uit dat wij in volgorde van grootte van de fracties zouden spreken. Blijkbaar was mijn oriëntatie niet helemaal correct en ben ik snel aangemeld. Ik dank u dat ik als eerste het woord krijgt.</al>

  </al-groep>

  <al-groep>

    <al>Vanwege het ontbreken van een tegenkandidaat was de verkiezing van de nieuwe Kamervoorzitter bijna bij acclamatie gebeurd. Ik vermoed dat dit een unicum, een novum zou zijn geweest in de geschiedenis van de Staten-Generaal. Maar ook als het Kamervoorzitterschap wordt gecontinueerd, is enig decorum bij het vervullen van dit ambt op zijn plaats. Vandaar dat ook nu weer is voorzien in vier stemronden met zo nodig nog een tussenstemming. Wij kunnen aan de bak.</al>

  </al-groep>

  <al-groep>

    <al>Niet ontkend kan worden dat de stemming over de nieuwe Kamervoorzitter vandaag, iets weg heeft van een functioneringsbeoordeling. Aangezien een dergelijke beoordeling vertrouwelijk van aard is, doe ik over de inhoud daarvan geen mededelingen namens mijn fractie, al verheel ik niet dat de SGP-fractie het afgelopen jaar met waardering heeft kennisgenomen van het optreden van de Kamervoorzitter.</al>

  </al-groep>

  <al-groep>

    <al>De fractie van de SGP beperkt zich op dit moment tot twee vragen aan de kandidaat-voorzitter. In de eerste plaats wil ik de kandidaat-voorzitter een spiegel voorhouden van een van haar roemruchte voorgangers, de heer Vondeling. Hij was van dezelfde politieke familie en Kamervoorzitter van 1972 tot en met 1979. De onvolprezen parlementaire informatiebron Parlement en Politiek meldt onder meer het volgende over hem: "Hij trad soms als "schoolmeester" van de Kamer op. Toen bij de plenaire behandeling van een wetsvoorstel over het gevangeniswezen nog eens 75 feitelijke vragen waren gesteld, vroeg hij of niet beter de commissie voor Justitie nog eens bijeengeroepen was om ervoor te zorgen dat deze behandeling een andere inhoud kreeg." Ik voeg hieraan toe dat het woord "schoolmeester" in deze context als een positieve kwalificatie wordt gezien. Dat is het natuurlijk altijd wel, maar ik zeg het er hier nog eens speciaal bij. Het probleem was natuurlijk dat plenair nog zo veel vragen werden gesteld; dat verdiende een betere voorbereiding. Mijn vraag aan de kandidaat-voorzitter is hoe zij dit optreden van deze voorganger waardeert. Overigens mag ik er nog bij vertellen dat de heer Vondeling zijn opvolger als fractievoorzitter van de PvdA slechts wat velletjes briefpapier van de voetbalclub Cambuur naliet, althans zo gaat het verhaal. Dat blijft hier uiteraard buiten beschouwing.</al>

  </al-groep>

  <al-groep>

    <al>Dan kom ik bij de tweede vraag. Die heeft betrekking op de verantwoordelijkheid van de Kamervoorzitter voor de bedrijfsvoering van de Tweede Kamer, zeg maar de bedrijfsinterne taak. Ik doel dan met name op de zorg voor het Kamerpersoneel. Wij realiseren ons als Kamerleden misschien wel eens te weinig hoe cruciaal, maar ook hoe veeleisend de bijdrage van al deze mannen en vrouwen is voor het soepel laten functioneren van het parlementaire bedrijf in al zijn facetten. De kandidaat-voorzitter schrijft in haar brief over dit punt: "Veel gaat goed, maar het is ook nodig om de ambtelijke organisatie kritisch tegen het licht te houden. Samen met het Presidium heb ik het afgelopen jaar stappen gezet in de professionalisering en verzakelijking van de ambtelijke organisatie, maar we zijn er nog niet." Natuurlijk, de professionele en de zakelijke kant van het bedrijf moeten goed geregeld zijn, maar er is meer nodig voor een arbeidsvreugdevolle werkweek voor de medewerkers. Mijn tweede vraag is daarom: welke mogelijkheden ziet de beoogd Voorzitter om de immateriële aspecten van arbeidsvreugde te behouden of te bevorderen?</al>

  </al-groep>

  <al-groep>

    <al>Ik zie uit naar de reflecties van de kandidaat op deze vragen. Ik zeg dank voor de gelegenheid om het woord te voeren.</al>

  </al-groep>

</tekst>

<spreker>

  <voorvoegsels>De</voorvoegsels>

  <naam>

    <achternaam>voorzitter</achternaam>

  </naam>:</spreker>

<tekst status="goed">

  <al-groep>

    <al>Die reflecties zullen later volgen.</al>

  </al-groep>

</tekst>

0 个答案:

没有答案