読み込んだXMLのデータを1行10文字に整形して表示する



動作ブラウザ

winmaclinux
n7m1e5e6o7 n7m1e5s1 n7m1k3
×× ×× ×
ソース


【text.xml】
<?xml version="1.0" encoding="UTF-8" ?> <root> <test id="test0">吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ。 </test> <test id="test1">ホラホラ、これが僕の骨だ、生きてゐた時の苦労にみちたあのけがらはしい肉を破つて、しらじらと雨に洗はれ、ヌックと出た、骨の尖。 それは光沢もない、ただいたづらにしらじらと、雨を吸収する、風に吹かれる、幾分空を反映する。 生きてゐた時に、これが食堂の雑踏の中に、坐つてゐたこともある、みつばのおしたしを食つたこともある、と思へばなんとも可笑しい。 </test> </root>
【text.htm】
<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 (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) { //XML内の"test"というタグ名の配列のno番目のデータを取得する var wkdatas = xdoc.getElementsByTagName("test")[no] //書き出すためのdivを作っておく var wkdiv= document.body.insertBefore( document.createElement("div"), document.body.firstChild) html = " " for( i=0; 10 <= wkdatas.lastChild.data.length ; i++ ) { wkdatas.lastChild.splitText(10) html += wkdatas.childNodes[i].data wkdiv.innerHTML += html + '<br>' html = "" } wkdiv.innerHTML += wkdatas.lastChild.data + '<br><br>' wkdiv.style.fontFamily="nonospace" } //--> </script> <input type = "button" value = "1つめ読み込み" onclick= "no=0;loadFile('text.xml',writeXMLData)"> <input type = "button" value = "2つめ読み込み" onclick= "no=1;loadFile('text.xml',writeXMLData)"> 読み込んだXMLのデータを1行10文字に整形して表示する