1. はじめに
HTMLは習得が容易で汎用性があり、一般的なPHPプログラムはHTML言語に埋め込まれています。しかし、WEB の普及が進むにつれ、HTML の弱点がますます明らかになってきています。 XML の登場により、これらの欠点が補われ、インターネット上のすべてのデータを処理できる汎用的な方法が提供されます。
2. HTMLの限界の分析
1. HTMLは拡張性が低い。一般的なアプリケーションには HTML で十分ですが、数学や化学などの記号を扱う場合には明らかな欠点があり、拡張できないため開発が大きく制限されます。
2.リンクが切れた場合は自動修正できません。 Web ページの URL アドレスは頻繁に変更されるため、URL アドレスを変更する場合は手動で情報を変更する必要があり、そうしないと「404 URL アドレスが見つかりません」というメッセージが表示され、Web ページの保守作業が大幅に増加します。
3. データ検索に時間がかかる。 HTMLは主にWebページの表示制御に使用されるため、同じデータであってもWebページごとに保存形式が異なるため、データ検索時に必要な情報を素早く見つけることができません。
4. HTML では、2 バイト文字や多国籍文字に対する十分なサポートがありません。たとえば、中国語の情報ページはプラットフォームが異なると表示されない場合があります。
こうした欠点があるからこそ、人々はHTMLに代わるWebページ制作言語を研究してきたのです。その中には、すでに使用されているものとして、Extensible Markup Language XML、Cascading Style Sheets (CSS)、Dynamic HTML (DHTML) などがあります。
3. XMLの構成
以下に、いくつかの主要な XML テクノロジーの簡単なリストを示します。
1. DTD(文書型宣言)
DTD の主な機能は、XML のコンテンツ モードを定義すること、XML タグのデータ範囲を制限して属性のデータ型を定義することです。ただし、XML で記述されていないため、スケーラビリティが比較的低く、提供されるデータ型の数も限られているため、その役割は限られています。
2. XMLスキーマ
XML Schemaの機能はDTDの機能に似ています。ただし、スキーマ ファイルには、それを参照する XML ファイル内の特定のタイプの要素と属性が記述されているという点が異なります。さらに、Schema は XML で記述されているため、DTD と比較して次の利点があります。
・XML スキーマのコンテンツ モデルはオープンであり、自由に拡張できますが、DTD は拡張されたコンテンツを解析できません。
・DTDはコンテンツタイプを文字列としてのみ定義できますが、XMLスキーマではコンテンツタイプを整数、浮動小数点、ブール値、またはその他多くの単純なデータ型として定義できます。
XML スキーマは、名前空間を使用してドキュメントの最も具体的なノードをスキーマに接続します。XML ファイルには複数の対応するスキーマを含めることができますが、XML ファイルには DTD を 1 つだけ含めることができます。
3.XLink
Web言語として、XMLのリンク機能は非常に重要です。 XML のリンクおよびアドレス指定メカニズムには、XLink、XPath、および XPointer が含まれます。 XLink は、文書間に一方向または多方向の複雑な接続関係を確立できる強力なリンク方法と、注釈リンク、概要リンク、拡張リンク セットなどのさまざまなリンク機能を提供します。 XPath は XSLT および XPointer で使用され、XML ドキュメント内のノードおよびノード セットに対する相対的な位置決めをサポートします。 XPointer は、XPath に基づいて XML ドキュメントのコンテンツ (文字列や選択された段落など) の内部構造の位置決めを提供します。 XML のリンク機能は、HTML に比べて大幅に強化されています。
4. CSSとXSL
XML の特徴の 1 つは、内容と形式が分離されていることです。つまり、XML ドキュメントには、ドキュメントを表示/表現する方法に関する情報が含まれていません。 CSS と XSL (XML スタイル言語) は、XML ドキュメントの表示の問題を解決します。
CSS(Cascading Style Sheets)はHTMLやXMLでも使用できます。 XSL は XML 構文を完全に使用しており、CSS よりもはるかに強力です。
5、ドム
ドキュメント オブジェクト モデル (DOM) は、ドキュメントのコンテンツ、構造、スタイルに動的にアクセスして更新する手段を提供する、プラットフォームおよび言語に依存しないプログラム インターフェイスです。テキストはさらに処理でき、処理の結果がプレゼンテーション ページに更新されます。
DOM の目標は、コア、HTML、XML 部分を含む、XML と HTML の標準プログラミング インターフェイスを定義することです。 DOM のコア部分は、あらゆる構造化ドキュメントを表すことができる基礎となるオブジェクトのセットを確立します。 HTML と XML は、より便利なドキュメント ビューとして機能する高レベルのインターフェイスを提供します。 DOM 仕様はオブジェクトとメソッドで構成されます。プログラマーは、特定の種類のドキュメントへのアクセスと操作を容易にするためにこれらを使用します。
6. 名前空間
名前空間は、XML ファイルの要素と属性に現れるすべての名前のコレクションであり、URL によって区別されます。 XML では、ユーザーがタグと要素を自分で定義できます。したがって、複数の XML ファイルを 1 つにマージすると、競合が発生する可能性があります。名前空間はこの問題を解決します。
4. PHP の XML サポート
PHP は XML を強力にサポートします。 XML「パーサー」を使用し、このパーサーをサポートするために、20 (PHP4) の XML 解析関数を提供します。以下は、最も一般的に使用される PHP 解析関数の一部です。
1.xml_parse
boolean xml_parse(int parser, string data, int [isFinal]);
この関数は、XML形式のファイルデータを解析するために使用されます。パラメータ パーサーは解析コードです。パラメータ データは、解析されたデータ ブロック (チャンク) です。 isFinal パラメータは省略できます。true に設定すると、システムは最後のデータを data パラメータに自動的に送信します。エラーがない場合は true を返します。
2.xml_parser_create
int xml_parser_create(string [エンコーディング]);
この関数は、新しい XML パーサーを初期化するために使用されます。エンコーディング パラメータは省略できます。デフォルト値は ISO-8859-1 です。US-ASCII と UTF-8 です。成功すると、他の関数で使用するためにパーサー コードが返され、失敗すると false 値が返されます。
3.xml_set_element_handler
boolean xml_set_element_handler(int parser, string startElementHandler, string endElementHandler);
この関数は、xml_parse() 関数で使用する要素のヘッダーを構成します。パラメータ パーサーは解析コードです。 startElementHandler パラメーターと endElementHandler パラメーターは、それぞれ要素の開始と終了のヘッダーです。startElementHandler には解析コード、名前、属性が含まれる必要があり、endElementHandler パラメーターには解析コードと名前が含まれます。エラーがない場合は true を返します。
4.xml_set_character_data_handler
boolean xml_set_character_data_handler(int パーサー、文字列ハンドラー);
この関数は文字データのヘッダーを設定します。パラメータ パーサーは解析コードです。パラメータ ハンドラには、解析コードとデータ文字列の 2 つの要素が含まれています。エラーがない場合は true を返します。
5.xml_get_error_code
int xml_get_error_code(int パーサー);
この関数はXML処理中のエラーコードを取得することができます。パラメータ パーサーは解析コードです。パーサーにエラーがある場合は false 値を返し、そうでない場合はエラー コード (XML_ERROR_BINARY_ENTITY_REF .... など) を返します。
6.xml_error_string
string xml_error_string(int code);
この関数はXML処理中のエラーコードを取得することができます。パラメータコードは解析エラーコードです。エラーがない場合、戻り値はコードのテキスト説明文字列です。
7.xml_get_current_line_number
int xml_get_current_line_number(int parser);
この関数はXML解析で現在処理中の行番号を取得するために使用します。パラメータ パーサーは解析コードです。パーサーにエラーがある場合は false 値が返され、エラーがない場合は行番号が返されます。
8.xml_parser_free
boolean xml_parser_free(int parser);
この関数は、XML 解析で現在使用されているメモリを解放するために使用されます。パラメータ パーサーは解析コードです。エラーがない場合は true、そうでない場合は false を返します。
5. 事例分析
以下は、XML 1.0形式で書かれたアドレス帳address.xmlをPHP5で読み込み、内容を表示する例です。詳細については、関連する注記を参照してください。
<ol class="dp-c">//パート 1: いくつかの PHP ヘルパー関数<li class="alt"><span><span></span></span></li> <li><span></span></li> <li class="alt"> <span>// </span><span class="comment"></span><span></span> </li> <li><span></span></li> <li class="alt"> <span>/*************************************** </span><span class="comment"></span><span></span> </li> <li> <span></span> * XML を a file * </li> <li class="alt"> <span></span><span class="comment"></span><span></span> </li> <li> *文字列への内容 * <span></span> </li> <li class="alt"> <span></span><span class="comment"></span> </li> <li>********************** * **********/<span></span> </li> <li class="alt"><span><span class="comment"></span></span></li> <li><span> </span></li>function<li class="alt"><span>read_file(<span class="comment"></span>$filename</span></li>) <li> <span></span> </li> <li class="alt"> <span><span class="comment"></span> <span> </span></span>$lines</li> <li>=ファイル(<span></span>$ファイル名</li> <li class="alt">); <span></span><span class="keyword"></span><span></span><span class="vars"> </span><span>//変数$contentsはファイルの内容を格納する変数です</span> </li> <li><span></span></li> <li class="alt"><span></span></li> <li><span>$contents</span></li>= <li class="alt"> <span>「」</span><span class="comment">; </span><span></span> </li> <li><span> </span></li>while<li class="alt"> <span>(list(</span>)<p align="left"></p> <div style="display:none;"> <span id="url" itemprop="url">http://www.bkjia.com/PHPjc/486021.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">true</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/486021.html</span><span id="genre" itemprop="genre">技術記事</span><span id="description" itemprop="description"> 1. 小規模な HTML は習得が容易で、汎用性が高い。一般的な PHP プログラムは HTML 言語に埋め込まれています。しかし、WEB の普及が進むにつれ、HTML の弱点がますます明らかになってきています。 ...</span> </div> <div class="art_confoot"></div> </li> </ol>