文字列からXML文書を生成

loadXML()メソッド

(書式)boolean値=Documentオブジェクト.loadXML("文字列")
引数の文字列からXML文書を生成する。戻り値は、XML文書が生成されたら<true>が、失敗したら<false>が返される。

[サンプルHTML文書を表示](下のフレームに)

XMLソース

<?xml version="1.0" encoding="Shift_JIS" ?>
<root>
<title>2003年11月05日の東証株式第一部情報</title>
<info><name>銘柄</name><end>終値(円)</end><total>出来高(千株)</total></info>
<data>
<kabu><name code="6752">松下</name><end>1529</end><total>12302</total></kabu>
<kabu><name code="6753">シャープ</name><end>1786</end><total>3964</total></kabu>
<kabu><name code="6758">ソニー</name><end>4030</end><total>8220</total></kabu>
<kabu><name code="6764">三洋</name><end>516</end><total>7551</total></kabu>
<kabu><name code="6501">日立</name><end>692</end><total>21896</total></kabu>
<kabu><name code="6502">東芝</name><end>440</end><total>17832</total></kabu>
<kabu><name code="6701">NEC</name><end>1027</end><total>19229</total></kabu>
<kabu><name code="6702">富士通</name><end>708</end><total>16634</total></kabu> </data>
<end>以上です(2004/5/4)</end>
</root>

HTMLソース

<SCRIPT language="JavaScript"><!--
function test1(){ //元のXML文書を表示
var xmlobj=new ActiveXObject("MSXML2.DOMDocument");
xmlobj.async=false;
xmlobj.load("table01.xml");
dv.innerText = xmlobj.xml;
}
function test2(){ //文字列からXML文書を生成
var xmlobj=new ActiveXObject("MSXML2.DOMDocument");
xmlobj.async=false;
xmlobj.load("table01.xml");

var newxmlobj = new ActiveXObject("Msxml2.DOMDocument");
var str="<root>\n";
str += xmlobj.selectSingleNode("//title").xml+"\n";
str += xmlobj.selectSingleNode("//info").xml+"\n";
var nodes = xmlobj.selectNodes("//kabu[total >= 10000]");
for(var i = 0; i < nodes.length; ++i) {
str += nodes.item(i).xml + "\n";
}
str +="</root>"
newxmlobj.loadXML(str); //文字列をXML文書に読み込む
dv.innerText = newxmlobj.xml;
}
//--></SCRIPT>
</HEAD>
<BODY>
<BUTTON onclick="test1()"> 元のXML文書を表示</BUTTON>
元XML文書から出来高1万株以上のデータだけを抽出した
<BUTTON onclick="test2()"> 新規に生成したXML文書を表示</BUTTON>
<DIV id="dv" style="margin-left:20px;border:1px solid green">&nbsp;&nbsp;</DIV>

end(05/5/9)