検索

最近、いくつかの構成ファイルを処理していて、YAML 形式のファイルに遭遇しました。これまでこの形式のファイルに触れたことがないため、XML には比較的慣れています。では、YAML とは何でしょうか? XML と比較した場合の利点と欠点は何ですか? YAML はどのような場合に使用する必要がありますか? YAML の使い方をここで簡単にまとめてみましょう。 XML から始めましょう。

XML については誰もがよく知っていると思います。以下はインターネットから抜粋した概念的なものです。ここで言うことはあまりありません。基本的な使い方についてもう少し詳しく説明しましょう。
XML の概要:
拡張マークアップ言語 (XML)、電子ドキュメントをマークアップして構造化するために使用されるマークアップ言語で、ユーザーが独自にマークアップできるようにするマークアップ言語です。言語が定義されているソース言語。 XML は標準一般化マークアップ言語 (SGML) のサブセットであり、Web トランスポートに適しています。 XML は、アプリケーションやベンダーに依存せずに構造化データを記述および交換するための統一された方法を提供します。
形式の特徴:
XML は、Access、Oracle、SQL Server などのデータベースとは異なります。データベースは、データのインデックス作成、並べ替え、検索、関連する整合性など、より強力なデータ ストレージと分析機能を提供します。XML はデータのみを保存します。実際、XML と他のデータ表現の最大の違いは、非常にシンプルであることです。これは一見些細な利点ですが、これが XML のユニークな点です。 XML と HTML の設計の違いは次のとおりです。XML はデータの送信と保存を目的として設計されており、その焦点はデータのコンテンツです。 HTML はデータを表示するように設計されていますが、データの外観に重点が置かれています。 HTML は情報を表示するように設計されており、XML は情報を送信するように設計されています。
XML と HTML 構文の違い: すべての HTML タグがペアで出現する必要はありませんが、XML ではすべてのタグがペアで出現する必要があります。一方、HTML タグは大文字と小文字が区別されます。
読み取りと書き込み:
XML の読み取りと書き込みには 2 つの方法があり、1 つは JavaScript を使用して XML 値を取得する方法、もう 1 つは PHP を使用して読み取る方法です。 XML を記述するときはマニュアルを参照できます。XML 形式は比較的自由であり、タグをカスタマイズできますが、原則として直感的であることが重要です。質問がある場合は、誰でもテストできるように例を以下に示します。

note.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
  <from>John</from>
  <to>George</to>
  <message>Don&#39;t forget the meeting!</message>
</note>

xml_test.html

JavaScript

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmls="http://www.w3.org/1999/xhtml">
<body>
  <p>
    <b>To:</b> <span id="to"></span><br />
    <b>From:</b> <span id="from"></span><br />
    <b>Message:</b> <span id="message"></span>
  </p>
<script type="text/javascript">
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.open("GET","note.xml",false);
  xmlhttp.send();
  xmlDoc=xmlhttp.responseXML;

  document.getElementById("to").innerHTML=
  xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
  document.getElementById("from").innerHTML=
  xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
  document.getElementById("message").innerHTML=
  xmlDoc.getElementsByTagName("message")[0].childNodes[0].nodeValue;
</script>

</body>
</html>

xml_test.php

<?php 
//创建DOM对象
$xml = new DOMDocument(); 
//读取XML文件
$xml = simplexml_load_file(&#39;note.xml&#39;); 
//输出XML文件中from属性,多个相同属性也就是数组的形式,可以用下标来取值
echo $xml->from;
?>

YAML はじめに:

YAML は、アプリケーションやアプリケーションの開発において、XML よりもシンプルで読みやすいシリアル化言語として使用されることが増えています。設定ファイル。この記事では、YAML の現状、XML と比較した YAML の長所と短所を簡単に紹介し、YAML の典型的なアプリケーション シナリオとその使用法 (C/C++、Ruby、PHP などをカバー) を実践例を交えて説明します。
利点:
YAML は可読性が優れています。
YAML とスクリプト言語は優れた対話性を備えています。
YAML は言語を実装するデータ型を使用します。
YAML には一貫した情報モデルがあります。
YAML は実装が簡単です。
上記の5項目はXMLの欠点です。同時に、YAML には XML の次の利点もあります:
YAML はストリームに基づいて処理できます。
YAML は強力な表現能力と優れたスケーラビリティを備えています。
つまり、YAML は、XML によって完了するタスクを完了するために、XML よりも機敏な方法を使用しようとします。
その他のコンテンツと仕様については、http://www.yaml.org を参照してください。
構文:
構造はスペースを介して表示されます。シーケンス内の項目は「-」で表され、マップ内のキーと値のペアは「:」で区切られます。
これがほぼすべての構文です。
たとえば...
一般に、YAML ファイルの拡張子は .yaml です。例: john.yaml

name: John Smith

age: 37

spouse:

name: Jane Smith

age: 25

children:

- name: Jimmy Smith

age: 15

- name: Jenny Smith

age 12

ジョンは 37 歳で、4 人家族の幸せな家庭を持っています。二人の子供、ジミーとジェニーは元気で可愛いです。彼の妻のジェーンは若くて美しいです。

深く勉強すると、社会問題も見つかるかもしれません^_^。
YAMLの可読性が良いことがわかります。
読み取りと書き込み:
PHP で YAML の読み取りと書き込みを行うには、Spyc クラスを使用して YAML ファイルの読み取りと書き込みを行うことをお勧めします。
Spyc クラス ファイルのダウンロード アドレス:
https://github.com/mustangostang/spyc/

Spyc で使用できるクラス メソッドは 2 つだけです。1 つは YAML ファイルを読み取ることで、もう 1 つは YAML ファイル形式を生成することです。以下に 2 つの方法を紹介します。

include(&#39;spyc.php&#39;);

// 读取YAML文件,生成数组
$yaml = Spyc::YAMLLoad(&#39;spyc.yaml&#39;);

// 将数组转换成YAML文件
$array[&#39;name&#39;]  = &#39;andy&#39;;
$array[&#39;site&#39;] = &#39;21andy.com&#39;;
$yaml = Spyc::YAMLDump($array);

php.ini は ini 解析メソッドを読み取り、構成は多次元配列をサポートできないため、yaml から多次元配列を生成することに非常に興味があり、主に次のような構成ファイルを作成したいと考えています。

以下のように PHP 多次元配列に変換します:

test.yaml (この例は私の DB 構成ファイルです。強くお勧めします!)

  - { row: 0, col: 0, func: {tx: [0, 1]} }

test.php

DB:
  default:
    dsn: &#39;mysql:dbname=test;host=127.0.0.1&#39;
    user: &#39;root&#39;
    pass: &#39;111&#39;
  session:
    dsn: &#39;mysql:dbname=test;host=127.0.0.1&#39;
    user: &#39;root&#39;
    pass: &#39;111&#39;

PHP で生成された YAML ファイルの例:

include('spyc.php') ;
//配列を YAML ファイル形式に変換します
$array['name'] = 'PHP Programmer's Notes';
$array['site'] = 'www.songchaoke.cn' ;
$yaml = Spyc ::YAMLDump($array);
//変換された YAML をファイルに書き込みます
$f = fopen('test2.yaml',"w+");
fwrite($f,$yaml) ;
fclose( $f);
[/code]

XML と YAML の使用に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
スケーリングXML/RSS処理:パフォーマンス最適化手法スケーリングXML/RSS処理:パフォーマンス最適化手法Apr 27, 2025 am 12:28 AM

XMLおよびRSSデータを処理する場合、次の手順でパフォーマンスを最適化できます。1)LXMLなどの効率的なパーサーを使用して、解析速度を改善します。 2)SAXパーサーを使用して、メモリの使用量を削減します。 3)Xpath式を使用して、データ抽出効率を改善します。 4)処理速度を改善するために、マルチプロセスの並列処理を実装します。

RSSドキュメント形式:RSS 2.0以降の探索RSSドキュメント形式:RSS 2.0以降の探索Apr 26, 2025 am 12:22 AM

RSS2.0は、コンテンツパブリッシャーが構造化された方法でコンテンツを配布できるようにするオープン標準です。タイトル、リンク、説明、リリース日などの豊富なメタデータが含まれているため、サブスクライバーは迅速にコンテンツを参照してアクセスできます。 RSS2.0の利点は、そのシンプルさとスケーラビリティです。たとえば、カスタム要素を許可します。つまり、開発者は著者、カテゴリなどのニーズに基づいて追加情報を追加できます。

RSSの理解:XMLの視点RSSの理解:XMLの視点Apr 25, 2025 am 12:14 AM

RSSは、頻繁に更新されるコンテンツを公開するために使用されるXMLベースの形式です。 1。RSSFeedは、タイトル、リンク、説明などを含むXML構造を通じて情報を整理します。2。rssfeedの作成には、言語やリリース日などのメタデータを追加するXML構造での書き込みが必要です。 3.高度な使用法には、マルチメディアファイルと分類された情報を含めることができます。 4.デバッグ中にXML検証ツールを使用して、必要な要素が存在し、正しくエンコードされていることを確認します。 5. RSSFeedの最適化は、構造をシンプルに保つことで、ページング、キャッシュ、および保持することで実現できます。この知識を理解して適用することにより、コンテンツを効果的に管理および配布できます。

XMLのRSS:タグ、属性、および構造のデコードXMLのRSS:タグ、属性、および構造のデコードApr 24, 2025 am 12:09 AM

RSSは、コンテンツを公開および購読するために使用されるXMLベースの形式です。 RSSファイルのXML構造には、ルート要素、要素、および複数の要素が含まれ、それぞれがコンテンツエントリを表します。 XMLパーサーを介してRSSファイルを読み取り、解析すると、ユーザーは最新のコンテンツを購読して取得できます。

RSSにおけるXMLの利点:技術的なディープダイビングRSSにおけるXMLの利点:技術的なディープダイビングApr 23, 2025 am 12:02 AM

XMLには、RSSの構造化データ、スケーラビリティ、クロスプラットフォームの互換性、解析検証の利点があります。 1)構造化されたデータにより、コンテンツの一貫性と信頼性が保証されます。 2)スケーラビリティにより、コンテンツのニーズに合わせてカスタムタグを追加できます。 3)クロスプラットフォームの互換性により、さまざまなデバイスでシームレスに動作します。 4)分析および検証ツールは、フィードの品質と完全性を確保します。

XMLのRSS:コンテンツシンジケーションのコアを発表しますXMLのRSS:コンテンツシンジケーションのコアを発表しますApr 22, 2025 am 12:08 AM

XMLでのRSSの実装は、構造化されたXML形式を使用してコンテンツを整理することです。 1)RSSは、チャネル情報やプロジェクトリストなどの要素を含むデータ交換形式としてXMLを使用します。 2)RSSファイルを生成する場合、コンテンツは仕様に従って整理し、サブスクリプションのためにサーバーに公開する必要があります。 3)RSSファイルは、読者またはプラグインを介してサブスクライブして、コンテンツを自動的に更新できます。

基本を超えて:高度なRSSドキュメント機能基本を超えて:高度なRSSドキュメント機能Apr 21, 2025 am 12:03 AM

RSSの高度な機能には、コンテンツネームスペース、拡張モジュール、条件付きサブスクリプションが含まれます。 1)コンテンツネームスペースはRSS機能を拡張します。2)dublincoreやiTunesなどの拡張モジュールを拡張してメタデータを追加します。これらの関数は、情報収集の効率を改善するためにXML要素と属性を追加することにより実装されます。

XMLバックボーン:RSSフィードが構造化される方法XMLバックボーン:RSSフィードが構造化される方法Apr 20, 2025 am 12:02 AM

rssfeedsusexmltoStructurecontentupdates.1)xmlprovidesahierararchStructurefordata.2)theelementDefinesthefeed'sidentityandContainesements.3)letentionEntentividualContentPieces.4)

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール