PHP 初心者のための XML
1.xmlとは
XMLとはExtensible Markup Language (Extensible Markup Language)の略称であり、マークアップがその鍵となる部分です。コンテンツを作成し、適切なタグでマークを付けると、各単語、語句、または情報の塊を認識可能で分類可能な情報にすることができます。作成するファイル、つまりドキュメント インスタンスは、要素 (タグ) とコンテンツで構成されます。要素は、文書を印刷出力から読み取るとき、または電子的に処理するときに、文書をより深く理解するのに役立ちます。要素がより説明的であればあるほど、文書の部分を識別しやすくなります。タグの出現以来、タグ付きコンテンツには利点があります。つまり、コンピューターシステムが欠落している場合でも、印刷データをタグを通じて理解できるということです
2.xmlの構築
前述したように、XMLファイルコンテンツとマークアップです。コンテンツのほとんどを要素内に含めるには、要素をマークアップで囲みます。たとえば、XML クックブックを作成する必要があるとします。 Ice Cream Sundae というレシピを XML で記述する必要があります。レシピ名をマークするには、このテキストを要素に含める必要があります。つまり、テキストの先頭と末尾に開始タグと終了タグを追加します。要素にはレシピ名という名前を付けることができます。要素の開始タグをマークするには、<recipename> のように要素名を山かっこ (<>) で囲みます。次に、「アイスクリームサンデー」というテキストを入力します。テキストの後に終了タグを入力します。つまり、要素名を山かっこで囲み、要素名の前に終了スラッシュ (/) を追加します (例: </recipename>)。これらのタグは要素を形成し、その中にコンテンツや他の要素を追加できます。
ドキュメントまたはドキュメントセットの要素名を作成できます。特定のニーズに基づいて要素を組み合わせるルールを作成できます。要素名は、より具体的な名前にすることも、より一般的な名前にすることもできます。追加する要素を決定するルールを作成することもできます。これらのルールは厳格にすることも緩めることもできますが、それは完全にあなた次第です。重要だと思われる部分を特定するために、文書の要素を必ず作成してください。
3.xml を作成する
XML ドキュメントの最初の行は XML 宣言にすることができます。これは、ファイルを XML ファイルとして識別するファイルのオプションの部分で、ツールや人間が (SGML や他のマークアップと間違われることなく) XML を認識できるようにします。この宣言は、単純に <?xml?> として記述することも、XML バージョン (<?xml version="1.0"?>)、または <?xml version=" などの文字エンコーディングを含めることもできます。 Unicode 1.0 の場合は「encoding="utf-8"?>」。この宣言はファイルの先頭に表示する必要があるため、複数の小さな XML ファイルを 1 つの大きな XML ファイルにマージする予定がある場合は、このオプションの情報を無視できます
4.ルート要素を作成します
ルート要素の開始タグと終了タグは、XML ドキュメントのコンテンツを囲むために使用されます。ファイルにはルート要素を 1 つだけ含めることができ、ルート要素を含めるには「ラッパー」を使用する必要があります。リスト 1 は、ルート要素の名前が <recipe> である要約例を示しています。 (完全な XML ファイルについては、「ダウンロード」セクションを参照してください)。
5.名前付き要素
これまで、<recipe> がルート要素として使用されてきました。 XML では、要素の名前を選択し、それらの名前に基づいて対応する DTD またはスキーマを定義します。名前を作成するときは、英文字、数字、およびアンダースコア (_) などの特殊文字を使用できます。名前を付けるときに注意する必要がある点は次のとおりです:
· 要素名にスペースを含めることはできません。
· 名前は英文字のみで始めることができ、数字や記号は使用できません。 (最初の文字の後には、文字、数字、所定の記号、またはそれらを組み合わせたものを使用できます。)
· 大文字と小文字に制限はありませんが、混乱を避けるために一貫性を持たせる必要があります。
前の例を続けると、<recipename> という名前の要素が追加されると、開始タグ <recipename> と対応する終了タグ </recipename> が追加されます。
6.ネストされた要素
ネストとは、要素を他の要素の中に配置することを意味します。これらの新しい要素は子要素と呼ばれ、それらを含む要素は親要素と呼ばれます。リスト 3 に示すように、<recipe> ルート要素内には他のいくつかの要素がネストされています。これらのネストされた子要素には、<recipename>、<ingredlist>、および <preptime> が含まれます。 <ingredlist> 要素には複数の子要素 <listitem> が含まれます。 XML ドキュメントでは、複数レベルのネストを使用できます。
一般的な構文エラーは、親要素と子要素のネストが間違っていることです。子要素は、親要素の開始タグと終了タグ内に完全に含まれている必要があります。各兄弟要素は、次の兄弟要素が開始する前に終了する必要があります
<?xml version="1.0" encoding="UTF-8"?> <recipe> <recipename>Ice Cream Sundae</recipename> <ingredlist> <listitem> <quantity>3</quantity> <itemdescription>chocolate syrup or chocolate fudge</itemdescription> </listitem> <listitem> <quantity>1</quantity> <itemdescription>nuts</itemdescription> </listitem> <listitem> <quantity>1</quantity> <itemdescription>cherry</itemdescription> </listitem> </ingredlist> <preptime>5 minutes</preptime> </recipe>
7.要素と属性を含むxmlファイル
<?xml version="1.0" encoding="UTF-8"?> <recipe type="dessert"> <recipename cuisine="american" servings="1">Ice Cream Sundae</recipename> <preptime>5 minutes</preptime> </recipe>