[R] Assistance converting to R a python function that extracts from an XML file

Boris Steipe boris.steipe at utoronto.ca
Sat Dec 13 22:22:14 CET 2014


Or  ...

txt <- "<doc><CreaDate>20120627</CreaDate><CreaTime>07322600</CreaTime></doc>"

if (!require(XML)) {
	install.packages("XML")
	library(XML)
}


result <- xmlParse(txt, asText=TRUE)
# or ... result <- xmlParse(your-file-here.xml)

toString.XMLNode(getNodeSet(result,'//CreaDate/text()')[[1]])
toString.XMLNode(getNodeSet(result,'//CreaTime/text()')[[1]])


B.





On Dec 13, 2014, at 4:06 PM, Duncan Temple Lang <dtemplelang at ucdavis.edu> wrote:

> Hi Don
> 
> library(XML)
> readxmldate = 
> function(xmlfile) 
> {
>  doc = xmlParse(xmlfile)
>  xpathSApply(doc, '//Esri/CreaDate | //Esri/CreaTime', xmlValue)
> }
> 
> D.
> 
> On 12/13/14, 12:36 PM, MacQueen, Don wrote:
>> I would appreciate assistance doing in R what a colleague has done in
>> python. Unfortunately (for me), I have almost no experience with either
>> python or xml.
>> 
>> Within an xml file there is
>>    <CreaDate>20120627</CreaDate><CreaTime>07322600</CreaTime>
>> and I need to extract those two values, 20120627 and 07322600
>> 
>> 
>> Here is the short python function. Even without knowing python, it's
>> conceptually clear what it does. I would like to do the same in R.
>> 
>> def readxmldate(xmlfile):
>> 	tree = ET.parse(xmlfile)
>> 	root = tree.getroot()
>> 	for lev1 in root.findall('Esri'):
>> 		xdate = lev1.find('CreaDate').text
>> 		xtime = lev1.find('CreaTime').text
>> 		return xdate, xtime
>> 
>> 
>> Thanks in advance
>> -Don
>> 
> 
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list