-1

I have an XML file that I am trying to parse through with jQuery. Here is the schema:

<document>
  <field>
    <name>SUBJECT</name>
    <value>Biography &amp; Autobiography</value>
  </field>
  <field>
    <name>SUBJECT</name>
    <value>Religion &amp; Spirituality</value>
  </field>
  <field>
    <name>SUBJECT</name>
    <value>Military</value>
  </field>
  <field>
    <name>SUBJECT</name>
    <value>Nonfiction</value>
  </field>
  <field>
    <name>AUTHOR</name>
    <value>Blehm, Eric</value>
  </field>
  <field>
    <name>LANGUAGE</name>
    <value>eng</value>
  </field>
  <field>
    <name>DESCRIPTION</name>
    <value>Fearless takes you deep into SEAL Team SIX, straight to the heart of blah blah blah </value>
  </field>
</document>

<document>
  <field>
    <name>SUBJECT</name>
    <value>Biography &amp; Autobiography</value>
  </field>
  <field>
    <name>SUBJECT</name>
    <value>Religion &amp; Spirituality</value>
  </field>
  <field>
    <name>SUBJECT</name>
    <value>Military</value>
  </field>
  <field>
    <name>SUBJECT</name>
    <value>Nonfiction</value>
  </field>
  <field>
    <name>AUTHOR</name>
    <value>Blehm, Eric</value>
  </field>
  <field>
    <name>LANGUAGE</name>
    <value>eng</value>
  </field>
  <field>
    <name>DESCRIPTION</name>
    <value>Fearless takes you deep into SEAL Team SIX, straight to the heart of blah blah blah </value>
  </field>
</document>

<document>
  <field>
    <name>SUBJECT</name>
    <value>Biography &amp; Autobiography</value>
  </field>
  <field>
    <name>SUBJECT</name>
    <value>Religion &amp; Spirituality</value>
  </field>
  <field>
    <name>SUBJECT</name>
    <value>Military</value>
  </field>
  <field>
    <name>SUBJECT</name>
    <value>Nonfiction</value>
  </field>
  <field>
    <name>AUTHOR</name>
    <value>Blehm, Eric</value>
  </field>
  <field>
    <name>LANGUAGE</name>
    <value>eng</value>
  </field>
  <field>
    <name>DESCRIPTION</name>
    <value>Fearless takes you deep into SEAL Team SIX, straight to the heart of blah blah blah </value>
  </field>
</document>

I'm trying a nested loop like this, but the second var y is coming up as undefined.

function myFunction(xml) 
{
  var i;
  var j;
  var xmlDoc = xml.responseXML;
 var table="";
  var x = xmlDoc.getElementsByTagName("document");
  for (i = 0; i < x.length; i++) 
  { 
    // table += "<h2>New Record</h2>";
   var y =  x[i].getElementsByTagName("field").childNodes;
   for (j= 0; j < y.length; j++);
    {
        table += "field name: " + y[j].getElementsByTagName("name")[0].childNodes[0].nodeValue + "<br>"
        + "field value: " + 
        y[j].getElementsByTagName("value")[0].childNodes[0].nodeValue +
        "<br><br>";
    }

  }
  document.getElementById("demo").innerHTML = table;
}

I'm just trying to get some output for now. Once I figure this out, I'll add some switch statements, and just pull the fields I want to display.

BSMP
  • 4,596
  • 8
  • 33
  • 44
Jim
  • 1

1 Answers1

-1

You can use an XML to JSON converter and then access the JSON values which is easier. here you go http://goessner.net/download/prj/jsonxml/

then you will be able to do:

var xml = 'Your XML here';
var parsedxml = parseXml(xml);
var json = xml2json(parsedxml);
console.log(json.SUBJECT);
nramirez
  • 5,230
  • 2
  • 23
  • 39
  • ok, ya, I thought this looked more like json output, then xml.. I'll give it a try. thank you. – Jim Jun 12 '17 at 17:09