2012-08-07 75 views
0

所以我想選擇什麼XML數據顯示(不使用屬性)使用Javascript。下面是關於什麼我想要做的具體細節:選擇什麼XML數據顯示沒有屬性JS/XML

XML

<channel> 

    <item> 
    <title>3.jpg</title> 
    <link>images/clean/3-dirty.jpg</link> 
    </item> 

    <item> 
    <title>4.jpg</title> 
    <link>images/clean/4-dirty.jpg</link> 
    </item> 

<item> 
    <title>5.jpg</title> 
    <link>images/clean/4-clean.jpg</link> 
    </item> 

    <item> 
    <title>6.jpg</title> 
    <link>images/clean/4-dirty.jpg</link> 
    </item> 

... and the list goes on for ages. 

</channel> 

的Javascript

<script type="text/javascript"> 
if (window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari 
xmlhttp=new XMLHttpRequest(); 
} 
else 
{// code for IE6, IE5 
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.open("GET","xml/drc.xml",false); 
xmlhttp.send(); 
xmlDoc=xmlhttp.responseXML; 

var x=xmlDoc.getElementsByTagName("item"); 
for (i=0;i<x.length;i++) 
{ 
document.write("<img src='"); 
document.write(x[i].getElementsByTagName("link")[0].childNodes[0].nodeValue); 
document.write("' alt='image' height='220px' width='260px' />"); 
} 

</script> 

如何顯示,僅包含單詞「髒」,或在「乾淨」的圖像網址? 我試過使用IndexOf()方法,但無法讓它工作。

+0

你可以告訴你如何使用它?你是否使用小寫'indexOf'? – 2012-08-07 09:25:59

回答

3

試試這個:

for (i=0;i<x.length;i++) { 
    var src = x[i].getElementsByTagName("link")[0].childNodes[0].nodeValue; 
    if(src.indexOf("dirty") != -1) { 
     document.write("<img src='"); 
     document.write(src); 
     document.write("' alt='image' height='220px' width='260px' />"); 
    } 
} 

,如果它不工作,試試這個,太:

for (i=0;i<x.length;i++) { 
    var src = x[i].getElementsByTagName("link")[0].childNodes[0].nodeValue; 
    var srcLower = src.toLowerCase(); 
    if(srcLower.indexOf("dirty") != -1) { 
     document.write("<img src='"); 
     document.write(src); 
     document.write("' alt='image' height='220px' width='260px' />"); 
    } 
} 
+1

謝謝sedran!第一個爲我解決了它! :) – user1581347 2012-08-07 09:48:02

+0

圖像鏈接可以包含一些大寫字母(例如:DirTy),如果您也想要它們,您應該使用第二個代碼;) – sedran 2012-08-07 10:43:10

相關問題