Я получил данные XML с помощью запроса SOAP (через RCurl). Данные содержат список из 10 юридических решений, поскольку я хотел бы извлечь две части информации («Entscheidungsart» и «Gericht») и поместить их в кадр данных.
К сожалению, XPath не кажутсяработать на меня, в результате чего пустой фрейм данных.
library(RCurl) headerFields =
c(Accept = "text/xml",
Accept = "multipart/*",
'Content-Type' = "text/xml; charset=utf-8",
SOAPAction = "http://ris.bka.gv.at/ogd/V2_5/SearchDocuments")
##############
body <- '<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<SearchDocuments xmlns="http://ris.bka.gv.at/ogd/V2_5">
<query>
<Suche>
<Judikatur>
<Dokumenttyp>
<SucheInRechtssaetzen>0</SucheInRechtssaetzen>
<SucheInEntscheidungstexten>1</SucheInEntscheidungstexten>
</Dokumenttyp>
<Vfgh>
<Entscheidungsart>Undefined</Entscheidungsart>
<Index>*</Index>
<Sammlungsnummer>*</Sammlungsnummer>
<Sortierung xsi:type="VfghSortExpression">
<SortDirection>Ascending</SortDirection>
<SortedByColumn>Datum</SortedByColumn>
</Sortierung>
</Vfgh>
<ImRisSeit>Undefined</ImRisSeit>
<DokumenteProSeite>Ten</DokumenteProSeite>
<Seitennummer>1</Seitennummer>
</Judikatur>
</Suche>
</query>
</SearchDocuments>
</soap:Body>
</soap:Envelope>'
##############
reader = basicTextGatherer()
curlPerform(url = "https://data.bka.gv.at/ris/ogd/v2.5/ogdrisservice.asmx",
httpheader = headerFields,
postfields = body,
writefunction = reader$update)
##############
doc <- xmlParse(reader$value())
root <- xmlRoot(doc)
data = data.frame(Entscheidungsart = xpathSApply(doc,"//Entscheidungsart", xmlValue),
Gericht = xpathSApply(doc,"//Gericht", xmlValue))