Structures_DataGrid_DataSource_XML -- XML データソースドライバ
説明
このクラスは、XML データ用のデータソースドライバです。
文字列あるいはファイル名を受け付けます。
XPath 式を指定して、XML データの一部を取り出すこともできます。
サポートする操作モード
このドライバは次の操作モードをサポートしています。
オプション
このドライバは、以下のオプションを受け付けます。
表 62-2このドライバのオプション
オプション | 型 | 説明 | デフォルト値 |
---|
fieldAttribute | string |
XML ソースのどの属性をカラムのフィールド名として使用するか
(XML ソースが属性をもっている場合にのみ使用します)。
| null |
fields | array |
データソースからどのフィールドを取得するか。空の配列を指定すると、
すべてのフィールドを取得します。
array(field1, field2, ...) 形式となります。
| array() |
generate_columns | bool |
ラベルつきの Structures_DataGrid_Column オブジェクトを作成します。
'labels' オプションを参照ください。
非推奨: 代わりに Structures_DataGrid::generateColumns() を使用してください。
| false |
labelAttribute | string |
XML ソースのどの属性をカラムのラベルとして使用するか
('generate_columns' が true で、
XML ソースが属性をもっている場合にのみ使用します)。
| null |
labels | array |
データフィールドとラベルの対応。
'generate_columns' が true の場合にのみ使用します。
array(field => label, ...) 形式となります。
非推奨: 代わりに Structures_DataGrid::generateColumns() を使用してください。
| array() |
natsort | boolean |
配列のソートを自然順 (example1、Example2、test1、Test2)
で行うか否 (Example2、Test2、example1、test1;
つまり大文字が最初にくる) か。
| false |
primaryKey | array |
レコードを一意に決定する識別子を含むフィールドの名前、
あるいは数値インデックス (複数のフィールドを指定するのは、
複合主キーの場合のみです)。
| null |
xpath | string | XML データのサブセットへの XPath。 | '' |
例
例 62-1シンプルな XML 文字列のバインド <?php
$xml = <<<XML
<records>
<record>
<firstname>Olivier</firstname>
<lastname>Guilyardi</lastname>
<city>Paris</city>
<country>France</country>
</record>
<record>
<firstname>Mark</firstname>
<lastname>Wiesemann</lastname>
<city>Aachen</city>
<country>Germany</country>
</record>
</records>
XML;
// bind() のオプション (この例では使用しません)
$options = array();
// XML 文字列をバインドします
$test = $datagrid->bind($xml, $options, 'XML');
// バインド時にエラーが発生した場合は表示します
if (PEAR::isError($test)) {
echo $test->getMessage();
}
?> |
|
例 62-2より複雑な XML 文字列の ('xpath' オプションを使用した) バインド <?php
$xml = <<<XML
<response>
<date>today</date>
<server>localhost</server>
<records>
<record>
<firstname>Olivier</firstname>
<lastname>Guilyardi</lastname>
<city>Paris</city>
<country>France</country>
</record>
<record>
<firstname>Mark</firstname>
<lastname>Wiesemann</lastname>
<city>Aachen</city>
<country>Germany</country>
</record>
</records>
</response>
XML;
// bind() のオプション
$options = array('xpath' => '/response/records');
// XML 文字列をバインドします
$test = $datagrid->bind($xml, $options, 'XML');
// バインド時にエラーが発生した場合は表示します
if (PEAR::isError($test)) {
echo $test->getMessage();
}
?> |
|