title: Delphi - Fast(er) XML parser
body: <p>I'm looking for a very fast XML parser for Delphi, for very simple data.</p>
  
  <p>Consider the following kind of data:</p>
  
  <pre><code>&lt;node&gt;
      &lt;datatype1&gt;randomdata&lt;/datatype1&gt;
      &lt;datatype2&gt;randomdata&lt;/datatype2&gt;
      &lt;datatype3&gt;randomdata&lt;/datatype3&gt;
      &lt;datatype4&gt;randomdata&lt;/datatype4&gt;
      &lt;datatype5&gt;randomdata&lt;/datatype5&gt;
      &lt;datatype6&gt;randomdata&lt;/datatype6&gt;
      &lt;datatype7&gt;randomdata&lt;/datatype7&gt;
      &lt;datatype8&gt;randomdata&lt;/datatype8&gt;
      &lt;datatype9&gt;randomdata&lt;/datatype9&gt;
      &lt;datatype10&gt;randomdata&lt;/datatype10&gt;
      &lt;datatype11&gt;randomdata&lt;/datatype11&gt;
      &lt;datatype12&gt;randomdata&lt;/datatype12&gt;
      &lt;datatype13&gt;randomdata&lt;/datatype13&gt;
      &lt;datatype14&gt;randomdata&lt;/datatype14&gt;
      &lt;datatype15&gt;randomdata&lt;/datatype15&gt;
      &lt;datatype16&gt;randomdata&lt;/datatype16&gt;
      &lt;datatype17&gt;randomdata&lt;/datatype17&gt;
      &lt;datatype18&gt;randomdata&lt;/datatype18&gt;
      &lt;datatype19&gt;randomdata&lt;/datatype19&gt;
      &lt;datatype20&gt;randomdata&lt;/datatype20&gt;
  &lt;/node&gt;
  </code></pre>
  
  <p>Copy this 10000 times (datatypes and the data being obviously different in a real scenario). Consider also the data contains Unicode.</p>
  
  <p>This will be parsed and loaded into an Array of records like</p>
  
  <pre><code>Type MyData = record
    d1,d2,d3,d4,d5,
    d6,d7,d8,d9,d10,
    d11,d12,d13,d14,d15,
    d16,d17,d18,d19,d20: string;
  end;
  </code></pre>
  
  <p>I wrote a custom parser for this, which in my computer takes approx. 115ms for the entire process, from loading the file to having the 10,000 records filled.</p>
  
  <p>So I am looking for something that can accomplish this faster.</p>
  
  <p>Related questions:</p>
  
  <p><a href="https://stackoverflow.com/questions/14168974/delphi-perform-pos-within-utf8-string-boundaries">Pos() within utf8 string boundaries</a></p>
  
  <p><a href="https://stackoverflow.com/questions/14175173/delphi-pos-with-boundaries">Delphi - Pos() with boundaries</a></p>