Javascript - 获取和显示xml自定义字段

时间:2013-11-24 22:40:25

标签: javascript xml field

我刚开始在过去3或4天内学习javascript。我试图从另一个域显示xml文件的内容。

到目前为止,我可以获得“名称”“描述”“大小”等,但我无法让脚本显示自定义字段。

我在互联网上搜索但在自定义字段上找不到任何帮助,而在名称空间上却找不到任何帮助。

注意事项

  1. xml文件在另一个域上,我无法更改
  2. 字段数量不固定,产品可以包含任意数量的字段,包括无字段
  3. 字段名称可以是任何内容,它们会随产品而变化
  4. 我已经发布了示例xml和我正在使用的javascript。

    提前感谢您提供的任何帮助。

    <products>
     <product language="en">
      <ns2:name>Mens Flip Flop</ns2:name>
      <ns2:description>Flip Flops are comfortable and lightweight</description>
        <ns2:fields>
          <ns2:field name="Age">Adult</ns2:field>
          <ns2:field name="Sex">Male</ns2:field>
          <ns2:field name="Use">Casual</ns2:field>
          <ns2:field name="Type">Flip Flops</ns2:field>
          <ns2:field name="Colour">Black</ns2:field>
          <ns2:field name="Size">7</ns2:field>
        </ns2:fields>
      <ns2:size>7</ns2:size>
     </product>
     <product language="en" groupingId="505">
      <ns2:name>Womens Flip Flop</ns2:name>
      <ns2:description>Flip Flops are comfortable</ns2:description>
        <ns2:fields>
          <ns2:field name="Gender">Female</ns2:field>
          <ns2:field name="Use">Casual</ns2:field>
        </ns2:fields>
      <ns2:size>5</ns2:size>
     </product>
     <product language="en" groupingId="505">
      <ns2:name>Womens Pink Flip Flop</ns2:name>
      <ns2:description>Flip Flops are comfortable</ns2:description>
      <ns2:size>5</ns2:size>
       </product>
        </products>
    

    Javascript代码

    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    GetURL = "apixmlurl";  
    xmlhttp.open("GET",GetURL,false);
    xmlhttp.send();
    xmlDoc=xmlhttp.responseXML;
    
    var x=xmlDoc.getElementsByTagName("product");
    
    for (i=0;i<x.length;i++)
    var ProductName = getNodeValue(x[i],'name');
    var ProductDescription = getNodeValue(x[i],'description');
    
    // Get the fields here
    
    if(ProductName > ''){document.write("<b>Name:</b> "+ProductName+"<p>");}
    if(ProductDescription > ''){document.write("<b>Description:</b> "+ProductDescription+"<p>");}
    if(ProductSize > ''){document.write("<b>Size:</b> "+ProductSize+"<p>");}
    
    // Display the fields should go here
    }
    

0 个答案:

没有答案