|
||||||||
| 前のページ 1 2 | ||||||||
| 使用例(2) | ||||||||
| DOMによるデータ追加 | ||||||||
次にDOM APIの使用例を示します。PHP5のDOM APIでは、関数によるインターフェイスとオブジェクトインターフェイスの2種類のAPI(デュアルAPI)が用意されています。ここでは、オブジェクトAPIを使用してリスト1のXML文書にデータを追加する例を示します(リスト3)。 |
||||||||
| リスト3:DOMの例(dom.php) | ||||||||
1 <?php |
||||||||
リスト3のスクリプト(dom.php)のコードを見てみましょう。DOMを使用するには、まず、DOMオブジェクトのインスタンスを生成する必要があります(2行目)。次にloadメソッドにより既存のファイルからDOMツリーを生成します(3行目)。なお、ここではファイルからXMLデータを読み込んでいますが、PHPの変数に代入されたXMLデータからDOMツリーを生成することも可能です。 データを追加する際にはルートノードを取得した後、appendChildメソッドにより順次子ノードを追加していきます(4〜7行目)。 最後にsaveXMLメソッドによりXMLデータを出力します(8行目)。 リスト3のスクリプトにより出力されるXMLデータには、次の内容が追加されています。 |
||||||||
<book> |
||||||||
| DOMによるデータ検証 | ||||||||
XMLデータの再利用性を高めるためには、一定の規約の下にデータを記述すると同時に、そのデータが正しく記述されていることを検証する手段が必要となります。 PHP5のDOM APIでは、スキーマ言語に基づきXMLデータを検証する機能をサポートしています。スキーマ言語と一口に言ってもいくつか種類がありますが、DOM APIは、古くからあるDTD以外に、W3C標準のXML Schema、XML Schemaよりわかりやすいスキーマ言語として注目されているRelax NGをサポートしています。 ここでは、例としてリスト1に示したXML文書をリスト4に示すXML Schemaで検証することを考えます。 |
||||||||
| リスト4:XMLSchemaファイル(sample.xsd) | ||||||||
<?xml version="1.0"?> |
||||||||
XML Schemaに基づき検証を行うスクリプトをリスト5に示します。 |
||||||||
| リスト5:検証用スクリプト(validate.php) | ||||||||
1 <?php
|
||||||||
検証は、スキーマファイルを引数に指定してschemaValidateメソッドをコールすることにより行います(4行目)。 このスクリプトを実行すると、リスト1のXML文書が検証されます。この例の場合、リスト1の文書がリスト4のスキーマに基づき正しく記述されているため、「valid」と表示されます。 なお、DTDおよびRelax NGによる検証を行う場合は、それぞれvalidate()メソッド、relaxNGValidate()メソッドを使用します。 |
前のページ 1 2 |
|||||||
|
|
||||||||
|
|
||||||||
|
||||||||
|
|
||||||||
|
||||||||
|
|
||||||||

