Maison > développement back-end > Tutoriel XML/RSS > Comment utiliser XML et YAML

Comment utiliser XML et YAML

高洛峰
Libérer: 2016-12-24 11:03:01
original
1500 Les gens l'ont consulté

Récemment, lors du traitement de certains fichiers de configuration, je suis tombé sur des fichiers au format YAML. Comme je n'ai jamais été exposé à des fichiers dans ce format auparavant, je suis relativement familier avec XML. Alors, qu’est-ce que YAML ? Quels sont ses avantages et inconvénients par rapport à XML ? Quand faut-il utiliser YAML ? Comment utiliser YAML ? Faisons un bref résumé ici. Commençons par XML.

Je pense que tout le monde connaît XML. Vous trouverez ci-dessous des éléments conceptuels que j'ai extraits d'Internet. Pas grand chose à dire ici. Parlons davantage de quelques utilisations de base.
Aperçu de XML :
Extensible Markup Language (XML) est un langage de balisage utilisé pour marquer des documents électroniques afin de les rendre structurels. Il peut être utilisé pour marquer des données et définir des types de données. Un langage source qui définit son propre langage de balisage. XML est un sous-ensemble du langage SGML (Standard Generalized Markup Language) et convient parfaitement au transport Web. XML fournit une méthode unifiée pour décrire et échanger des données structurées indépendamment des applications ou des fournisseurs.
Fonctionnalités de format :
XML est différent des bases de données telles qu'Access, Oracle et SQL Server. Les bases de données offrent des capacités de stockage et d'analyse de données plus puissantes, telles que l'indexation des données, le tri, la recherche, la cohérence de la corrélation, etc. Seul XML est. pour stocker des données. En fait, la plus grande différence entre XML et les autres représentations de données est qu’il est extrêmement simple. Il s’agit d’un avantage apparemment trivial, mais c’est ce qui rend XML unique.
La différence de conception entre XML et HTML est la suivante : XML est conçu pour transmettre et stocker des données, et son objectif est le contenu des données. Bien que le HTML soit conçu pour afficher des données, il se concentre sur l'apparence des données. HTML est conçu pour afficher des informations, tandis que XML est conçu pour transmettre des informations.
La différence entre la syntaxe XML et HTML : toutes les balises HTML ne doivent pas nécessairement apparaître par paires, alors que XML exige que toutes les balises apparaissent par paires ; les balises HTML ne sont pas sensibles à la casse, tandis que XML est sensible à la casse.
Lecture et écriture :
Il existe deux méthodes que je connais en lecture et en écriture XML. L'une consiste à obtenir la valeur XML via JavaScript et l'autre consiste à la lire avec PHP. Vous pouvez vous référer au manuel lors de l'écriture de XML. Le format XML est relativement gratuit et vous pouvez personnaliser les balises, mais un principe est d'être intuitif. Des exemples sont répertoriés ci-dessous pour que tout le monde puisse les tester. Si vous avez des questions, vous pouvez communiquer.

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>
Copier après la connexion

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>
Copier après la connexion

xml_test.php

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

YAML Introduction :
YAML, en tant que langage de sérialisation plus simple et plus facile à lire que XML, est de plus en plus utilisé dans le développement d'applications et de fichiers de configuration. Cet article présentera brièvement l'état actuel de YAML, les avantages et les inconvénients de YAML par rapport à XML, et donnera des scénarios d'application typiques de YAML et son utilisation (couvrant c/c, ruby, PHP, etc.) à travers des exemples pratiques.
Avantages :
YAML est facile à lire.
YAML et les langages de script ont une bonne interactivité.
YAML utilise des types de données qui implémentent le langage.
YAML a un modèle d'information cohérent.
YAML est facile à mettre en œuvre.
Les 5 éléments ci-dessus sont les défauts du XML. Dans le même temps, YAML présente également les avantages suivants de XML :
YAML peut être traité sur la base de flux ;
YAML a de fortes capacités d'expression et une bonne évolutivité.
En bref, YAML tente d'accomplir les tâches accomplies par XML de manière plus agile que XML.
Pour plus de contenu et de spécifications, veuillez consulter http://www.yaml.org.
Syntaxe :
La structure est affichée avec des espaces. Les éléments de la séquence sont représentés par "-" et les paires clé-valeur dans la carte sont séparées par ":".
C'est presque toute la syntaxe.
Par exemple...
Généralement, le fichier YAML l'extension est .yaml. Par exemple : john.yaml

name: John Smith

age: 37

spouse:

name: Jane Smith

age: 25

children:

- name: Jimmy Smith

age: 15

- name: Jenny Smith

age 12
Copier après la connexion

John a 37 ans et a une famille heureuse de quatre personnes. Les deux enfants, Jimmy et Jenny, sont vifs et mignons. Sa femme Jane est jeune et belle.
Si vous étudiez en profondeur, vous pourrez également découvrir des problèmes sociaux ^_^.
On voit que la lisibilité de YAML est bonne.
Lecture et écriture :
Pour lire et écrire YAML en PHP, je recommande d'utiliser la classe Spyc pour lire et écrire des fichiers YAML.
Adresse de téléchargement du fichier de classe Spyc :
https://github.com/mustangostang/spyc/

Spyc n'a que 2 méthodes de classe disponibles, l'une consiste à lire les fichiers YAML et l'autre à générer le format de fichier YAML. Les deux méthodes sont présentées ci-dessous.

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);
Copier après la connexion

La configuration de la méthode d'analyse utilisée par php.ini pour lire ini ne peut pas prendre en charge les tableaux multidimensionnels. Je suis donc très intéressé par yaml pour générer des tableaux multidimensionnels. un fichier de configuration, comme suit :

  - { row: 0, col: 0, func: {tx: [0, 1]} }
Copier après la connexion

Convertissez en tableau multidimensionnel php comme suit :
test.yaml (cet exemple est mon fichier de configuration DB, fortement recommandé !)

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;
Copier après la connexion

test.php

<?php
include(&#39;spyc.php&#39;);
//读取YAML文件,生成数组
$yaml = Spyc::YAMLLoad(&#39;test.yaml&#39;);
echo "<pre class="brush:php;toolbar:false">";
print_r($yaml);
echo "
"; PHP code Array ( [DB] => Array ( [default] => Array ( [dsn] => mysql:dbname=test;host=127.0.0.1 [user] => root [pass] => 111 ) [session] => Array ( [dsn] => mysql:dbname=test;host=127.0.0.1 [user] => root [pass] => 111 ) ) )
Copier après la connexion

Exemple de fichier YAML généré par PHP :
include('spyc.php');
//Convertir le tableau en Format de fichier YAML
$array['name'] = 'Notes du programmeur PHP';
$array['site'] = 'www.songchaoke.cn';
$yaml = Spyc::YAMLDump( $array);
/ /Écrivez le YAML converti dans le fichier
$f = fopen('test2.yaml',"w ");
fwrite($f,$yaml);
fclose($f);
[/code]

Pour plus d'articles liés à l'utilisation de XML et YAML, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal