title: xml2js parser ignores the empty string in an array resulting in array size change
body: <p>xml below to be parsed:</p>
  
  <pre><code>&lt;ENVELOPE&gt;
  &lt;ABC&gt;
      &lt;DEF&gt;apple&lt;/DEF&gt;
      &lt;GHI&gt;4&lt;/GHI&gt;
      &lt;JKL&gt;85&lt;/JKL&gt;
  &lt;/ABC&gt;
  &lt;MNO&gt;add&lt;/MNO&gt;
  &lt;PQR&gt;&lt;/PQR&gt;
  &lt;STU&gt;&lt;/STU&gt;
  &lt;/ENVELOPE&gt;
  </code></pre>
  
  <p>and response after parsing:</p>
  
  <pre><code>{
  </code></pre>
  
  <p>"ENVELOPE": {
      "ABC": {
        "DEF": "apple",
        "GHI": "4",
        "JKL": "85"
      },
      "MNO": "add"
    }
      }</p>
  
  <p>The other two tags has been discarded by the xml2js parses. But i need it there to be empty atleast. Have tried using options of the parser but no luck yet</p>
  
  <p>Here is my code to get the parser: </p>
  
  <pre><code>private getParser() {
  let nameToLowerCase = (name: string): string =&gt; {
    return name.toLowerCase();
  }
  
  let options: xml2js.Options = {
    attrkey: '_',
    charkey: '$',
    explicitCharkey: true,
    emptyTag: null,
    normalize: true,
    normalizeTags: true,
    explicitArray: false,
    trim: true,
    tagNameProcessors: [nameToLowerCase],
    attrNameProcessors: [nameToLowerCase]
  };
  
  return new xml2js.Parser(options);
  </code></pre>
  
  <p>}</p>