[Rd] Creating XML document extremely slow

Titus von der Malsburg malsburg at gmail.com
Fri Feb 10 13:18:38 CET 2012


Hi list,

I'm using the package XML to create a simple XML document.
Unfortunately constructing the XML tree is extremely slow.  My code
(see below) adds only about 100 nodes per second on an Intel i5
machine.  There's clearly something wrong but I don't see what.

Here's a sample of the XML document:

  <?xml version="1.0" encoding="utf-8"?>
  <MarkerSet xmlns="http://www.brainproducts.com/MarkerSet">
   <SamplingRate>512.032770097286</SamplingRate>
   <SamplingInterval>1.953</SamplingInterval>
   <Markers>
    <Marker>
     <Type>Stimulus</Type>
     <Description>prr_156</Description>
     <Position>397497</Position>
     <Points>1</Points>
     <Channel>All</Channel>
    </Marker>
    ...
   </Markers>
  </MarkerSet>

There are about 500 very similar marker tags.  Here's the part of the
code that is particularly slow (x is a character, y is an integer,
both have a length of about 500):

  markernode <- xmlNode('Markers')
  for(i in 1:length(t)){
    markernode <- addChildren(markernode, xmlNode('Marker',
             xmlNode('Type', 'Stimulus'), xmlNode('Description', x[i]),
             xmlNode('Position', y[i]), xmlNode('Points', 1),
             xmlNode('Channel', 'All')))
  }

Looks pretty harmless to me.  Any suggestion about how I can speed
this up are most welcome!

  Titus



More information about the R-devel mailing list