0

body onLoadで呼び出されるAJAX関数があります。その AJAX は XML ファイルを呼び出します。

これが私のコードです。

AJAX:

function loadXml(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)
    {
    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>";
          }
        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();
}

体:

<body onLoad="loadXml('/content/blog/content.xml','posts')">
<div class="wrap">
    <br><br><br><br><br><br><br>
    <div class="content g_c" id="posts">
    </div>
</div>

//some more stuffs. some stuffs deleted
</body>

そして、CONTENT.XML :

<?xml version="1.0" encoding="utf-8"?>
<BLOG>
    <POST>
        <TITLE>Title!</TITLE>
        <CONTENT>
        content
        </CONTENT>
</POST>
</BLOG>

結果は素晴らしいですが、問題は結果が次のようになることです: (太字の言葉は、私が期待していたものです)

タイトル未定!

コンテンツ

最初に「未定義」という言葉があるのはなぜですか? どうすればそれを取り除くことができますか?何が原因なのかわかりません。ところで、私を助けてくれてありがとう。

4

2 に答える 2