2013-08-12 3 views
0

의 일부를 표시하려면AJAX 내가 AJAX 호출이 코드가 XML

function loadXml(b,c) 
{ 
var xmlhttp; 
var x,xx,i; 
var txt = ""; 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    x=xmlhttp.responseXML.documentElement.getElementsByTagName("POST"); 
    for (i=0;i<x.length;i++) 
     { 
     xx=x[i].getElementsByTagName("TITLE"); 
     { 
     try 
      { 
      txt=txt + "<span class='nphead'>" + xx[0].firstChild.nodeValue + "</span><div class='divider'><div class='divtop'></div><div class='divbot'></div></div><br>"; 
       } 
     catch (er) 
      { 
      txt=txt + "<span class='nphead'> </span><div class='divider'><div class='divtop'></div><div class='divbot'></div></div>"; 
      } 
     } 
     xx=x[i].getElementsByTagName("CONTENT"); 
     { 
     try 
      { 
      txt=txt + "<p class='pcontent'>" + xx[0].firstChild.nodeValue + "</p>"; 
      } 
     catch (er) 
      { 
      txt=txt + "<p> </p><div class='divider'><div class='divtop'></div><div class='divbot'></div></div>"; 
      } 
     } 
     } 
    document.getElementById(c).innerHTML=txt; 
    } 
    } 
xmlhttp.open("GET",b,true); 
xmlhttp.send(); 
} 

funcion 인 경우를 onLoad="loadXML('content.xml', 'divId')" 그리고 예를 들어, 이것은 나의은 content.xml이다 :

<BLOG> 
    <POST> 
     <TITLE><![CDATA[<a class="normal" href="">1st title</a>]]></TITLE> 
     <CONTENT> 
     1st 
     </CONTENT> 
    </POST> 

    <POST> 
     <TITLE><![CDATA[<a class="normal" href="">2nd title</a>]]></TITLE> 
     <CONTENT> 
     2nd 
     </CONTENT> 
    </POST> 

    <POST> 
     <TITLE><![CDATA[<a class="normal" href="">3rd title</a>]]></TITLE> 
     <CONTENT> 
     3rd 
     </CONTENT> 
    </POST> 
</BLOG> 

예를 들어, 내 XML에 약 <POST> 태그가 있으므로 여기에 있습니다. 내 문제 : 다른 태그를 표시하지 않고 2 번째 <POST> 태그 만 표시하려면 어떻게해야합니까?

는 이미 된 DIV와 <POST>의 내용을 포장 노력이 jQuery 코드를 시도했지만이 일을하지 않았다

$(window).load(function() { 
$('div.bpost').filter(
    function(){ 
     return !$('div.bpost').eq(2); 
    }).css('display','none'); 
}); 

을 ** 그리고 또한 자바 스크립트 은하지 일을 할 것 같다 XML에서 아약스 콘텐츠. **

+0

이 문제를 해결하는 데 도움이되지 않지만 _IE6은 IE5에서는 더 이상 사용되지 않습니다. MS도 EOL을 기꺼이 받아 들였고 더 이상 지원되지 않으므로 시간을 낭비하지 말고 지원을 기다리십시오. [죽었고 burried되었습니다] (http://www.nexhorizon.net/procorner/wp -content/uploads/2011/02/rip-ie6.jpg). 잊어 버려. 'console.log'가 도움을 줄 수 있습니다. BTW는 XML 구문 분석과 마찬가지로 자동으로 구문 분석되지 않으면 –

+0

@EliasVanOotegem, 조상이 내 사이트를 방문하는 경우를 대비하여 추가했습니다. 하지만 IE7 & 이하가 내 사이트를 방문하는 것을 막을 것입니다. 그러나 현재로서는 –

답변

0

이 시도하십시오. 그 일.

function loadXMLDoc(b,c) 
{ 
var xmlhttp; 
var txt,x,xx,i; 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    txt="<table border='1'><tr><th>Title</th><th>Artist</th></tr>"; 
    x=xmlhttp.responseXML.documentElement.getElementsByTagName("POST"); 

     txt=txt + "<tr>"; 
     xx=x[1].getElementsByTagName("TITLE"); 
     { 
     try 
      { 
      txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>"; 
      } 
     catch (er) 
      { 
      txt=txt + "<td> </td>"; 
      } 
     } 
     xx=x[1].getElementsByTagName("CONTENT"); 
     { 
     try 
      { 
      txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>"; 
      } 
     catch (er) 
      { 
      txt=txt + "<td> </td>"; 
      } 
     } 
     txt=txt + "</tr>"; 

    txt=txt + "</table>"; 
    document.getElementById('divId').innerHTML=txt; 
    } 
    } 
xmlhttp.open("GET","content.xml",true); 
xmlhttp.send(); 
} 
+0

함수에서 인수 b & c를 사용한 적이 없습니다. 사용하지 않을 경우 삭제하십시오 – SarathSprakash

+0

이것이 제 질문에 대답하지 않았다고 생각합니다. 내 질문은 XML의 n 번째 태그 만 표시하는 방법입니다. 또한 W3Schools에서 복사 했습니까? 왜냐하면 그렇게 생각해. –

+0

나는 그것을 w3sch0ols.com에서 편집했고 질문은 "나의 문제 : 다른 사람을 표시하지 않고 2nd 태그 만 어떻게 표시 할 수 있습니까?" – SarathSprakash