XML ファイル内の要素のすべてのノード名を、ほぼ同じ方法で出力できるようにする HTML ページを作成しようとしています。たとえば、次のようになります。
<a>
<b>
<c></c>
</b>
<d>
<e></e>
</d>
</a>
出力します:
a
b
c
d
e
これを実現するために、Javascript 関数を使用して XML ドキュメントを再帰的に走査しています。ただし、私が作成した関数は、最低レベルまで一度だけトラバースして停止し、次のようになります。
a
b
c
これは私のJavascript関数です
function printChildren(node){
if(node.childNodes.length > 1){
y=xmlDoc.getElementsByTagName(node.nodeName)[0].childNodes;
for(i=0;i<y.length;i++){
if(y[i].nodeName!="#text"){
document.write("<br>--->" + y[i].nodeName);
alert(y[i].nodeName);
printChildren(y[i]);
};
};
};
};
私のアプローチが間違っているのか、それとも再帰の最初のレベルが終了した後に関数が壊れているだけなのかはわかりません。ブラウザの癖が原因である場合に備えて、Mozilla Firefox でこれをテストしています。