XMLデータで同名のタグがある場合、位置を指定して内容を表示する

説明

XMLデータで同名のタグがある場合、位置を指定して内容を表示するにはExt.data.XmlReader()で読み込むタグの順番をmappingプロパティで指定します。順番は「タグ名:nth(〜)」で指定します。順番ですが、最初のタグがnth(1)、次がnth(2)となります。
<!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', mapping : 'name:nth(2)' },
{ 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>
<name>Ajax Book</name>
<price>2980</price>
<info>Ajaxの解説本です。初級〜中級者向けです。</info>
</book>
<book>
<name>JavaScript本</name>
<name>JavaScript Book</name>
<price>1780</price>
<info>JavaScriptの解説本です。上級者向けです。</info>
</book>
<book>
<name>Google Map本</name>
<name>Google Map Book</name>
<price>2780</price>
<info>Google Map APIの解説本です。</info>
</book>
</list>
サンプルを実行
[戻る]