[Rd] Creating XML document extremely slow

Titus von der Malsburg
Fri, 10 Feb 2012 12:18:38 -0000

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