2017-04-04 80 views
-1
function getName(fname, text) 

{ 
var xmlFile = "piante.xml"; 
var xmlDoc; 

if(typeof window.DOMParser != "undefined") { 
    xmlhttp=new XMLHttpRequest(); 
    xmlhttp.open("GET",xmlFile,false); 
    if (xmlhttp.overrideMimeType){ 
     xmlhttp.overrideMimeType('text/xml'); 
    } 
    xmlhttp.send(); 
    xmlDoc=xmlhttp.responseXML; 
} 
else{ 

    xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
    xmlDoc.async="false"; 
    xmlDoc.load(xmlFile); 
} 

var x=xmlDoc.getElementsByTagName("ROW"); 
document.write(x.length); 

for (var i=0;i<x.length;i++){ 

    var y=x[i].getElementsByTagName("DATA"); 

    if(y[1].childNodes[0].nodeValue == text){ 
     var z= y[0].childNodes[0].nodeValue; 

     return z;} 

    } 
} 

这里我的文件.XML功能JavaScript不读取XML文件

<?xml version="1.0" encoding="UTF-8" ?> 
<FMPXMLRESULT 
xmlns="http://www.filemaker.com/fmpxmlresult"><ERRORCODE>0</ERRORCODE><PRODUCT 
BUILD="12-06-2016" NAME="FileMaker" VERSION="ProAdvanced 15.0.3"/><DATABASE 
DATEFORMAT="D/m/yyyy" LAYOUT="" NAME="IndexHorti v3.12.fmp12" RECORDS="586" 
TIMEFORMAT="k:mm:ss "/> 

<METADATA><FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Gen Spe con spazio" 
TYPE="TEXT"/><FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Localizzazione esemplare LAST" 
TYPE="TEXT"/><FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Link WEB" 
TYPE="TEXT"/></METADATA> 

<RESULTSET FOUND="2"> 

<ROW MODID="56" RECORDID="20055"> 
<COL><DATA>Acanthus mollisL.</DATA></COL> 
<COL><DATA>01-02-01-23</DATA></COL> 
<COL><DATA>www.corriere.it</DATA></COL></ROW> 

<ROW MODID="12" RECORDID="20057"> 
<COL><DATA>Achillea millefolium L.</DATA></COL> 
<COL><DATA>01-05-01-16</DATA></COL> 
<COL><DATA>www.repubblica.it</DATA></COL></ROW> 
</RESULTSET> 
</FMPXMLRESULT> 

推出这个剧本没有出现!请帮助我。我把fie piante.xml放在这个脚本的同一个文件夹中。这里是单击该圆圈时测试我的脚本的页面。

http://www.soluzioniwebdesign.it/provaRubini/

感谢ü

+0

插入一些的console.log或警告语句来获得对JavaScript的处理反馈。一旦问题被识别并解决后,删除或注释这些陈述。 – JohnH

+0

我试过但没有出现 – LadyK

+1

检查控制台是否有错误,我看到一个GET /provaRubini/piante.xml 404(Not Found) – emed

回答

0
function getName(fname, text) 

{ 
    var fname ="piante.xml"; 
if (window.XMLHttpRequest) 
       { 
        xhttp = new XMLHttpRequest(); 
       } 
       else 
       { 
        xhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
       } 
       xhttp.open("GET",fname,false); 
       xhttp.send(); 

       xmlDoc = xhttp.responseXML; 





var x=xmlDoc.getElementsByTagName("ROW"); 

for (var i=0;i<x.length;i++){ 

    var y=x[i].getElementsByTagName("DATA"); 

    if(y[1].childNodes[0].nodeValue == text){ 

     var z= y[0].childNodes[0].nodeValue; 

     return z;} 

    } 
} 

这里正确的代码...也许这可以帮助