Mozilla の Javascript:
while (result)
{
alert(result.childNodes[0].nodeValue);
//txt=txt+result.childNodes[0].nodeValue+"<br/>";
result=nodes.iterateNext();
}
これは、xml ファイルから一連の文字列を返すことを目的としています。アラート行を使用すると、一連の適切な文字列で期待どおりにアラートが表示されます。コメント行の「txt」変数は、関数内のさらに下の innerHTML に移動することになっています。しかし、Firebug は、result.childNodes[0] が定義されていないと言い続けます。アラートでは定義されているのに、次の行では定義されていないのはなぜですか?
問題を特定するのに十分なコードであることを願っています...そうでない場合は、さらに投稿します。
手伝ってくれてありがとう
[編集]
これは結果の定義です:
var x=xmlDoc.responseXML;
var nodes=x.evaluate(path, x, null, XPathResult.ANY_TYPE, null);
var result=nodes.iterateNext();
XMLを取得しています
[編集]
さて、次のようにイテレータを for ループに入れます。
for (var i=0; i<2; i++)
{
var res=(xmlNodes.childNodes[0].nodeValue);
txt=txt+res+"<br/>";
xmlNodes=xmlQuery.iterateNext();
}
反復がnullになるとループが失敗するという理論があったからです。それが起こったことです-ループを使用可能なノードの量よりも 1 つのインスタンスを高く設定するまでは機能していました。今、ノードセットの「長さ」を取得する方法を見つけようとしています。それ、どうやったら出来るの?