<script type="text/javascript">
<!--
/*==========================================================
//クロスブラウザ load関数
引数 : url XMLファイルのurl
func 読み込み成功時の起動関数名
戻値 : 読み込まれたXMLノードツリー
例 : loadFile( 'data.xml', func1 )
function func1(){alert('test')}
Support http://game.gr.jp/js/
*/
function loadFile(url,func)
{
if(document.getElementById){
if (window.ActiveXObject)
{
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async = false
if(xmlDoc.load(url)){func(xmlDoc)}
} else if ( document.implementation &&
document.implementation.createDocument )
{
var xmlDoc = document.implementation.createDocument("","",null)
xmlDoc.onload = function (){func(xmlDoc)}
xmlDoc.load(url)
}
return xmlDoc
}
}
/*==========================================================*/
//読み込んだXMLのデータをもとにHTMLへ書き出す
function writeXMLData(xdoc)
{
var listLen = 10 //表示件数 wktitle.length
var ns_dc = "http://purl.org/dc/elements/1.1/"
//XML内の取り出したいタグの配列を作る
var wktitle = xdoc.getElementsByTagName("title")
var wkmodified = xdoc.getElementsByTagName("modified")
//名前空間用とりあえずクロスな処理
if(document.all) var wksubject = xdoc.getElementsByTagName("dc:subject")
else var wksubject = xdoc.getElementsByTagNameNS( ns_dc ,"subject")
//書き出すためのdiv
wkdiv = document.getElementById("writeXMLDataDiv")
wkdiv.innerHTML=""
//"title"タグが出てきた順に処理する
for( i = 1 ; i < listLen + 1 ; i++ )
{
if ( wktitle.length <= i ) break;
//urlを取り出す
var wklink = xdoc.getElementsByTagName("link")[i]
var wklinkHref = wklink.attributes.getNamedItem("href").nodeValue
//各タグ内のfirstChildのデータだけをinnerHTMLで書き出す
wkdiv.innerHTML += '<font size=-1>'
+ '<a href="'+ wklinkHref +'">'
+ '<b>[' + wksubject[(i-1)].firstChild.nodeValue +'] </b>'
+ wktitle[i].firstChild.nodeValue
+ '</a> '
+ wkmodified[i].firstChild.nodeValue
+ '</font><br>'
}
wkdiv.innerHTML += '<hr>'
}
//-->
</script>
<div id="writeXMLDataDiv">ブログタイトルを読み込みます</div>
<input type = "button"
value = "ブログタイトル読み込み 最新の10件"
onclick= "loadFile('./atom.xml',writeXMLData)">
<input type = "button"
value = "クリア"
onclick= "if(window.wkdiv)wkdiv.innerHTML=''">
投稿者 tato : 2004年06月23日 00:09
| トラックバック
■2004.06.23 最初につくった没バージョン
----------------------------------------
<dc:subject>が名前空間用のgetElementsByTagNameNSでないと取り出せないことに気づかず、IEは動いていたけど、Mozで動いていませんでした。
<script type="text/javascript">
<!--
/*==========================================================
//クロスブラウザ load関数
引数 : url XMLファイルのurl
func 読み込み成功時の起動関数名
戻値 : 読み込まれたXMLノードツリー
例 : loadFile( 'data.xml', func1 )
function func1(){alert('test')}
Support http://game.gr.jp/js/
*/
function loadFile(url,func)
{
if(document.getElementById){
if (window.ActiveXObject)
{
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async = false
if(xmlDoc.load(url)){func(xmlDoc)}
} else if ( document.implementation &&
document.implementation.createDocument )
{
var xmlDoc = document.implementation.createDocument("","",null)
xmlDoc.onload = function (){func(xmlDoc)}
xmlDoc.load(url)
}
return xmlDoc
}
}
/*==========================================================*/
//読み込んだXMLのデータをもとにHTMLへ書き出す
function writeXMLData(xdoc)
{
var listLen = 10 //表示件数 wktitle.length
//XML内の取り出したいタグの配列を作る
var wktitle = xdoc.getElementsByTagName("title")
var wkmodified = xdoc.getElementsByTagName("modified")
var wksubject = xdoc.getElementsByTagName("dc:subject")
//書き出すためのdiv
wkdiv = document.getElementById("writeXMLDataDiv")
wkdiv.innerHTML=""
//"title"タグが出てきた順に処理する
for( i = 1 ; i < listLen + 1 ; i++ )
{
if ( wktitle.length <= i ) break;
//urlを取り出す
var wklink = xdoc.getElementsByTagName("link")[i]
var wklinkHref = wklink.attributes.getNamedItem("href").nodeValue
//各タグ内のfirstChildのデータだけをinnerHTMLで書き出す
wkdiv.innerHTML += '<font size=-1>'
+ '<a href="'+ wklinkHref +'">'
+ '<b>[' + wksubject[(i-1)].firstChild.nodeValue +'] </b>'
+ wktitle[i].firstChild.nodeValue
+ '</a> '
+ wkmodified[i].firstChild.nodeValue
+ '</font><br>'
}
wkdiv.innerHTML += '<hr>'
}
//-->
</script>
<div id="writeXMLDataDiv">ブログタイトルを読み込みます</div>
<input type = "button"
value = "ブログタイトル読み込み 最新の10件"
onclick= "loadFile('">http://jsgt.org/mt/01/atom.xml',writeXMLData)">
<input type = "button"
value = "クリア"
onclick= "if(window.wkdiv)wkdiv.innerHTML=''">