ファイルメーカーのXMLデータを表示する
説明
ファイルメーカーのXMLデータを表示するにはExt.data.XmlReader()で読み込むXMLデータを指定します。ファイルメーカーのXMLタグは同名のものが複数あるためmappingとnth()を使って読み込むタグを指定します。
<!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: 'address.xml',
reader: new Ext.data.XmlReader({
record: 'RESULTSET/Row'
}, [
{ name:'Company', mapping : 'COL:nth(1)/DATA' },
{ name:'Address', mapping : 'COL:nth(2)/DATA' },
{ name:'Tel', mapping : 'COL:nth(3)/DATA' }
]
)
});
var grid = new Ext.grid.GridPanel({
store: store,
columns: [
{ header: "会社名", width: 150, dataIndex: 'Company', sortable: true },
{ header: "住所", width: 150, dataIndex: 'Address', sortable: true },
{ header: "電話番号", width: 100, dataIndex: 'Tel', sortable: true }
],
width:420,
height:140
});
store.load();
grid.render("addressList");
});
// --></script>
</head>
<body>
<h1>ファイルメーカーのXMLデータを表示する</h1>
<div id="addressList"></div>
</body>
</html>
【XML : booklist.xml】
<?xml version="1.0" encoding="UTF-8" ?><FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult"><ERRORCODE>0</ERRORCODE><PRODUCT BUILD="09-16-2004" NAME="FileMaker Pro" VERSION="7.0v3"/><DATABASE DATEFORMAT="Yyyy.m.d" LAYOUT="" NAME="address.fp7" RECORDS="5" TIMEFORMAT="h:mm:ss a"/><METADATA><FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="会社名" TYPE="TEXT"/><FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="住所" TYPE="TEXT"/><FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="電話" TYPE="TEXT"/></METADATA><RESULTSET FOUND="5"><ROW MODID="0" RECORDID="1"><COL><DATA>(株)秀和システム</DATA></COL><COL><DATA>東京都港区南青山1-26-1寿光ビル5F</DATA></COL><COL><DATA>03-3470-4941</DATA></COL></ROW><ROW MODID="0" RECORDID="2"><COL><DATA>(株)アソビシステムズ</DATA></COL><COL><DATA>東京都品川区</DATA></COL><COL><DATA>03-1234-5678</DATA></COL></ROW><ROW MODID="0" RECORDID="3"><COL><DATA>(株)麻痺黒ソフト</DATA></COL><COL><DATA>東京都渋谷区代々木</DATA></COL><COL><DATA>03-4321-5432</DATA></COL></ROW><ROW MODID="0" RECORDID="4"><COL><DATA>ByeDo!(株)</DATA></COL><COL><DATA>東京都港区六本木</DATA></COL><COL><DATA>03-1234-9876</DATA></COL></ROW><ROW MODID="2" RECORDID="5"><COL><DATA>(株)ギャフー</DATA></COL><COL><DATA>東京都港区六本木</DATA></COL><COL><DATA>03-1234-5678</DATA></COL></ROW></RESULTSET></FMPXMLRESULT>