XMLデータの複数のタグ内容を表示する

説明

XMLデータの複数のタグ内容を表示するにはExt.data.Store()を利用してXMLデータを読み込ませます。XMLデータを読み込ませるにはurlプロパティにXMLデータのパスを指定します。Ajaxの制限により同一ドメイン上にXMLデータファイルがないと読み込めません(ローカル上では動作しません)。
次にreaderプロパティにXMLデータの基準となるタグとデータグリッド表示に使用するタグを指定します。これはnew Ext.data.XmlReader({ record:'基準タグ' },[{ name : '表示タグ名1' }, { name : '表示タグ名2' }, { name : '表示タグ名3' }])のように指定します。取得したいタグの数だけ列記します。 new Ext.data.Store()で生成されたオブジェクトをグリッド表示を行うExt.grid.GridPanel()のstoreプロパティに指定します。表示するタグ名を指定するにはExt.grid.GridPanel()のcolumnsプロパティのdataIndexプロパティに設定します。columnsは配列形式で表示したいXMLタグ名などの情報を指定します。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Sample</title>
<link rel="stylesheet" href="../../../lib/resources/css/ext-all.css" type="text/css" media="all">
<link rel="stylesheet" href="../../../lib/resources/css/main.css" type="text/css" media="all">
<script type="text/javascript" src="../../../lib/js/ext-base.js"></script>
<script type="text/javascript" src="../../../lib/js/ext-all.js"></script>
<script type="text/javascript"><!--
Ext.EventManager.on(window, "load", function(){
var store = new Ext.data.Store({
url: 'booklist.xml',
reader: new Ext.data.XmlReader({
record: 'book'
}, [
{ name:'name' },
{ name:'price' },
{ name:'info' }
]
)
});
var grid = new Ext.grid.GridPanel({
store: store,
columns: [
{ header: "書籍名", width: 120, dataIndex: 'name' },
{ header: "価格", width: 50, dataIndex: 'price' },
{ header: "説明", width: 230, dataIndex: 'info' }
],
width:420,
height:140
});
store.load();
grid.render("dataArea");
});
// --></script>
</head>
<body>
<h1>XMLデータを表示する(複数のタグ内容を表示)</h1>
<div id="dataArea"></div>
</body>
</html>

【XML : booklist.xml】
<?xml version="1.0" encoding="UTF-8" ?>
<list>
<book>
<name>Ajax本</name>
<price>2980</price>
<info>Ajaxの解説本です。初級〜中級者向けです。</info>
</book>
<book>
<name>JavaScript本</name>
<price>1780</price>
<info>JavaScriptの解説本です。上級者向けです。</info>
</book>
<book>
<name>Google Map本</name>
<price>2780</price>
<info>Google Map APIの解説本です。</info>
</book>
</list>
サンプルを実行
[戻る]