ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PHP] 45. SimpleXML 파서(Simple XML Parsers) - PHP 강좌, PHP5
    Web/PHP 2015. 6. 13. 14:08

    PHP SimpleXML Parser
     SimpleXML은 XML 데이터를 쉽게 조작하고 얻을 수 있게 해주는 PHP 확장입니다.



    1. The SimpleXML Parser
     SimpleXML은 tree-based 파서입니다.

     SimpleXML은 XML 문서의 구조나 레이아웃을 안다면 요소의 이름, 속성, 본문의 내용을 얻는데 쉬운 방법을 제공합니다.

     SimpleXML은 XML 문서를 배열이나 객체의 집합과 같은 데이터 구조로 변환합니다.

     DOM이나 Expat 파서와 비교하여, SimpleXML은 적은 라인의 코드로 요소로부터 텍스트 데이터를 읽어들입니다.





    2. Installation
     PHP5 에서, SimpleXML 함수는 PHP 코어의 부분입니다. 설치없이 사용가능 합니다.





    3. PHP SimpleXML - Read From String
     simplexml_load_string() 함수는 문자열로부터 XML 데이터를 읽는데 사용합니다.

     XML 데이터를 포함한 변수가 있다고 가정합시다:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $myXMLData = 
    "<?xml version='1.0' encoding='UTF-8'?>
    <note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
    </note>";
     
    cs




     아래 예제에서 simplexml_load_string()이 어떻게 사용되는지 보여줍니다:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <!DOCTYPE html>
    <html>
    <body>
     
    <?php
    $myXMLData =
    "<?xml version='1.0' encoding='UTF-8'?>
    <note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
    </note>";
     
    $xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
    print_r($xml);
    ?>
     
    </body>
    </html>
    cs




     

     



     에러 처리 팁: 문서를 불러올 때 libxml 기능을 이용하여 모든 XML 에러를 검색하고, 반복해서 에러를 확인 할 수 있습니다.
     
     아래 예제는 불완전한 XML 문자열을 로드하려 할 때의 예제입니다:




     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <!DOCTYPE html>
    <html>
    <body>
     
    <?php
    libxml_use_internal_errors(true);
    $myXMLData =
    "<?xml version='1.0' encoding='UTF-8'?>  
    <document> 
       <user>John Doe</wronguser> 
       <email>john@example.com</wrongemail>
    </document>"
     
    $xml = simplexml_load_string($myXMLData);
    if ($xml === false) {
         echo "Failed loading XML: ";
         foreach(libxml_get_errors() as $error) {
             echo "<br>"$error->message;
         }
    else {
         print_r($xml);
    }
    ?>
     
    </body>
    </html>
    cs







     







    4. PHP SimpleXML - Read From File
     simplexml_load_file() 함수는 파일로부터 XML 데이터를 읽는데 사용됩니다.

     note.xml 파일이 있다고 가정합시다:



     

    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="UTF-8"?>
    <note>
      <to>Tove</to>
      <from>Jani</from>
      <heading>Reminder</heading>
      <body>Don't forget me this weekend!</body>
    </note>
    cs




     아래 예제는 simplexml_load_file() 함수를 사용하여 파일로부터 xml 데이터를 불러드리는 예제입니다:


     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!DOCTYPE html>
    <html>
    <body>
     
    <?php
    $xml=simplexml_load_file("note.xml") or die("Error: Cannot create object");
    print_r($xml);
    ?>
     
    </body>
    </html>
    cs




     


     





    * 이 강좌는 'w3schools'를 참조하여 작성하였습니다.

    댓글

Designed by Tistory.