あなたが理解する必要がある主なことは、DOM がどのように機能するかです。DOM の仕組みがわからない場合は、ここで情報を見つけることができます
本質的に、親タグと子タグを扱っています。XML では、その情報を抽出する必要があり、そこから好きなことを行うことができます。
ここの左側のバーに行くと、XML DOM ノードの操作方法に関する例とチュートリアルがたくさんあります。
ただし、知っておくべきことがいくつかあります(私の教授がこれを教えてくれたので、役立つヒントです)
ID やクラスは使用できません。代わりに、XMLノードを取得する必要があります
var elements = node.getElementsByTagName("tagname");
ノード内のテキストを取得するために innerHTML を使用することはできません。HTML ではできますが、XML ではできません。そのためには、使用する必要があります
var text = node.firstChild.nodeValue;
.attributeName
を使用して属性を取得することはできません。使用する必要があります
var attrValue = node.getAttribute("attrName");
お役に立てれば。それでも難しい場合は、質問してください。
さて、私は w3schools の例を試してみましたが、これがお役に立てば幸いです。尋ねるだけではない場合:
この例に移動
この例のウォークスルーを試みますが、何が起こっているかについての一般的な考えを理解しているはずです。cd_catalog.xml という名前の XML ファイルがあり、必要なすべての情報が含まれています。ボタンを押すと、すべての情報が HTML 形式で表示されます。前後の HTML コードを見るとmyDiv
、xml ファイル内のすべてのアーティストが取り込まれていることがわかります。
それでは、コードを見てみましょう。
function loadXMLDoc()
{
var xmlhttp;
var txt,x,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)
{
xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
txt=txt + x[i].childNodes[0].nodeValue + "<br />";
}
document.getElementById("myDiv").innerHTML=txt;
}
}
xmlhttp.open("GET","cd_catalog.xml",true);
xmlhttp.send();
}
指摘すべきいくつかの重要なこと。ドキュメントが完全に読み込まれ、コードが送信されると (これは によってチェックされますxmlhttp.status==200
)、彼は cd_catalog.xml からすべての xml データをxmlDoc
取得し、xmlhttp.responseXML
これxmlDoc
で、cd_catalog.xml からのすべての情報が便利な変数に格納されました。そこからxmlDoc.getElementsByTagName("ARTIST");
、xml ファイル内のすべてのアーティストの配列を取得するために使用し、他には何も取得しません。彼はこの配列を x と名付けました。
ここで、彼は x として知られるこの巨大な配列を調べ、各インデックスi
(x[i] として表される) に対して、1 つだけのもの (テキスト) を含む配列を返すchildNodeschildNodes[0]
を取得します。それの.nodeValue
。今、彼は元々 xml ファイルに保存されていたテキストを と呼ばれる変数に持っており、タグとその他の必要な HTML をtxt
追加するだけで、</br>
それを介しdocument.getElementById("myDiv").innerHTML
て HTML 形式に変換されます。このプロセスは、xml ファイル内の ARTIST タグごとに繰り返されます。
これが役立つことを願っています。まだ混乱している場合は、お知らせください。そして、これには、処理している xml ファイルとその場所を知る必要があります。