XML 및 YAML 사용 방법

5615 단어 XMLYAML
최근에 일부 프로필을 처리하다가 YAML 형식의 파일을 만났습니다. 이전에 이 형식의 파일을 접촉한 적이 없기 때문에 XML에 익숙합니다.그럼 YAML은 뭘까요?그것은 XML에 비해 또 어떤 장단점이 있습니까?어떤 상황에서 YAML을 쓰나요?YAML은 어떻게 사용하나요?여기서 간단한 총결을 합시다.우리 먼저 XML부터 얘기하자.XML 믿고 다들 잘 아시죠?다음은 제가 인터넷에서 따온 개념적인 물건입니다. 여러분이 한번 보실 수 있습니다.여기서 더 이상 말하지 않겠습니다.기본적인 용법을 더 많이 말해라.XML 개요: 확장 가능한 태그 언어(Extensible Markup Language, XML)는 전자 파일을 표시하여 구조적인 태그 언어를 가지게 하는 데 사용되며, 데이터를 표시하고 데이터 형식을 정의할 수 있으며, 사용자가 자신의 태그 언어를 정의할 수 있는 원본 언어이다.XML은 웹 전송에 적합한 표준 공통 태그 언어(SGML)의 하위 집합입니다.XML은 응용 프로그램이나 공급업체에 독립된 구조화된 데이터를 설명하고 교환하는 통일된 방법을 제공합니다.형식 특성: XML은 Access, Oracle, SQL Server 등 데이터베이스와 달리 데이터베이스는 더욱 강력한 데이터 저장과 분석 능력을 제공한다. 예를 들어 데이터 인덱스, 정렬, 검색, 관련 일치성 등이다. XML은 단지 데이터를 저장하는 것이다.사실 XML은 다른 데이터 표현 형식과 가장 큰 차이점은 매우 간단하다. 이것은 약간 자질구레해 보이는 장점이지만 바로 이 점이 XML을 남다르게 한다.XML과 HTML의 디자인 차이점은 XML은 데이터를 전송하고 저장하는 것으로 설계되었고 그 초점은 데이터의 내용이다.HTML은 데이터의 모양에 초점을 맞추어 데이터를 표시하도록 설계되었습니다.HTML은 정보를 표시하기 위한 것이고 XML은 정보를 전송하기 위한 것이다.XML과 HTML 문법의 차이점: HTML의 표기는 모든 것이 쌍으로 나타나야 하는 것이 아니라 XML은 모든 표기가 쌍으로 나타나야 하는 것을 요구한다.HTML 태그는 대소문자를 구분하지 않으며 XML은 대소문자를 구분하는 등 크기가 민감합니다.읽기와 쓰기: XML 읽기와 쓰기에 익숙한 것은 두 가지 방식이 있는데 하나는 자바스크립트를 통해 XML 값을 얻는 것이다. 하나는 PHP로 읽는 것이다.XML의 작성은 모두 매뉴얼을 참고할 수 있다. XML 형식이 비교적 자유롭고 사용자 정의 라벨을 사용할 수 있지만 직관적인 원칙이 있다.다음은 여러분이 테스트할 수 있도록 예를 직접 열거하고, 문제가 있으면 여러분은 교류할 수 있습니다.
note.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
  <from>John</from>
  <to>George</to>
  <message>Don't forget the meeting!</message>
</note>
xml_test.htmlJavaScript

<!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('note.xml');
// XML from , ,
echo $xml->from;
?>
 
YAML 소개: YAML은 XML보다 간단하고 읽기 쉬운 서열화 언어로서 응용 및 프로필 개발에 점점 더 사용되고 있다.본고는 YAML의 현황, YAML이 XML에 비해 우열세를 간단히 소개하고 실제 예를 통해 YAML의 전형적인 응용 장면과 사용 방법(c/c++,ruby,PHP 등 포함)을 제시하고자 한다.장점: YAML의 가독성이 좋다.YAML과 스크립트 언어의 상호작용이 좋다.YAML은 구현 언어의 데이터 형식을 사용합니다.YAML에는 일관된 정보 모델이 있습니다.YAML은 구현이 용이합니다.위의 5개는 바로 XML이 부족한 부분이다.또한 YAML은 XML의 다음과 같은 장점을 가지고 있다. YAML은 흐름을 바탕으로 처리할 수 있다.YAML은 표현력이 뛰어나고 확장성이 좋습니다.한 마디로 하면 YAML은 XML보다 더 민첩한 방식으로 XML이 완성한 임무를 완성하려고 한다.더 많은 내용 및 규범 참고http://www.yaml.org.문법: Structure는 공백으로 표시됩니다.Sequence의 항목은 "-"로 표시되며, 맵의 키 값은 "으로 구분됩니다.이것은 거의 모든 문법이다.예를 들면... 일반 YAML 파일 확장자는..yaml.예:john.yaml  .존은 올해 37세로 행복한 네 식구가 있다.두 아이 지미와 제니는 활발하고 귀엽다.아내 제인의 젊은 미모.깊이 연구하면 사회문제^_^도 발견할 수 있다.YAML의 가독성이 좋다는 것을 알 수 있다.읽기 쓰기: PHP는 YAML 읽기와 쓰기에 대해 Spyc 클래스를 사용하여 YAML 파일을 읽기와 쓰기를 추천합니다.Spyc 클래스 파일 다운로드 주소:https://github.com/mustangostang/spyc/Spyc두 가지 유형만 사용할 수 있습니다. 하나는 YAML 파일을 읽는 것이고, 하나는 YAML 파일 형식을 만드는 것입니다.다음은 이 두 가지 방법에서 소개한다. 

name: John Smith

age: 37

spouse:

name: Jane Smith

age: 25

children:

- name: Jimmy Smith

age: 15

- name: Jenny Smith

age 12
php.ii가 ii의 해석 방식을 읽는 그런 설정은 다차원 그룹을 지원할 수 없습니다. 그래서 저는 yaml에서 다차원 그룹을 생성하는 것에 관심이 있습니다. 주로 설정 파일을 만들고 싶습니다. 아래와 같습니다

include('spyc.php');

// YAML ,
$yaml = Spyc::YAMLLoad('spyc.yaml');

// YAML
$array['name']  = 'andy';
$array['site'] = '21andy.com';
$yaml = Spyc::YAMLDump($array);
php 다차원 그룹으로 전환하면 다음과 같다:test.yaml(이 예는 제 DB 프로필입니다. 사용하시기 바랍니다!)

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

DB:
  default:
    dsn: 'mysql:dbname=test;host=127.0.0.1'
    user: 'root'
    pass: '111'
  session:
    dsn: 'mysql:dbname=test;host=127.0.0.1'
    user: 'root'
    pass: '111'
 
PHP 생성 YAML 파일 예:

좋은 웹페이지 즐겨찾기