如何使用jQuery解析XML

时间:2017-06-09 20:10:53

标签: jquery xml

我有一个XML文件,我试图用jQuery解析。这是架构:

<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>

我正在尝试这样的嵌套循环,但第二个变量y即将出现未定义。

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;
}

我现在只是想获得一些输出。一旦我搞清楚了,我会添加一些switch语句,然后拉出我想要显示的字段。

1 个答案:

答案 0 :(得分:-1)

您可以使用XML到JSON转换器,然后访问更容易的JSON值。你去http://goessner.net/download/prj/jsonxml/

然后你就能做到:

var xml = 'Your XML here';
var parsedxml = parseXml(xml);
var json = xml2json(parsedxml);
console.log(json.SUBJECT);