0

右、以下は、XML ドキュメント内のコンテンツを表示するための単純な JavaScript 要求です。

私は XML のさまざまなバージョンを持っていますが、それらはすべて同じ場所からのものですが、構造がわずかに異なるものもあります。そのため、KISCOURSEタグ内の一部の要素にはTITLEがありません。これが発生すると、コーディング構造が破棄され、間違っているように見えます。

TITLEがKISCOURSE内に見つからない場合、そのKISCOURSEを表示せずに次の KISCOURSE に移動する方法はありますか。

念のため、XML データがどのように見えるかの例については、http: //universitycompare.com/wp-content/themes/blue-and-grey/XML/london_metropolitan_university.xmlを参照してください。

<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","http://universitycompare.com/wp-content/themes/blue-and-grey/XML/london_metropolitan_university.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 

var x=xmlDoc.getElementsByTagName("INSTITUTION");
for (i=0;i<x.length;i++)

var x=xmlDoc.getElementsByTagName("KISCOURSE");
for (i=0;i<x.length;i++)

  { 
  document.write("<div class='CourseArea'><h3 id='CourseTitle'>");

  // TITLE
  document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
  document.write("</h3>");
  document.write("<p class='ForP'>-&nbsp;&nbsp;");
  document.write(x[i].getElementsByTagName("MODE")[0].childNodes[0].nodeValue);     
  document.write("</p><div class='clear'></div>");

  // UCAS CODE
  document.write("<p id='ucascode'>");
  document.write("<b>UCAS CODE</b>&nbsp;&nbsp;&nbsp;");
  document.write(x[i].getElementsByTagName("UCASCOURSEID")[0].childNodes[0].nodeValue);
  document.write("</p>"); 

  // READ MORE LIGHTBOX
  document.write("<img src='<?php echo home_url(); ?>/wp-content/themes/blue-and-grey/images/info-icon.png' width='15' style='margin:0px 2px 0px -4px;' />");
  document.write("<a class='various' href='#ReadMore'>Read More</a>&nbsp;&nbsp;&nbsp;");

  // VISIT COURSE LINK
  document.write("<a class='courselink' href='");
  document.write(x[i].getElementsByTagName("CRSEURL")[0].childNodes[0].nodeValue);
  document.write("' target='_blank'>Visit course website</a>");
  document.write("</div>");

  }

</script>
4

1 に答える 1

0

タイトルが見つからない場合は、続行できます (次のループ反復にスキップします)。

var x=xmlDoc.getElementsByTagName("KISCOURSE");
for (i=0;i<x.length;i++)
{ 
  if(x.getElementsByTagName("TITLE").length == 0) continue; //this skips to the next.

  document.write("<div class='CourseArea'><h3 id='CourseTitle'>");
于 2012-10-08T20:04:46.547 に答える