복붙노트

CRUD 노드와 XML 파일의 노드 값에 대한 간단한 프로그램 [closed]

카테고리 없음

CRUD 노드와 XML 파일의 노드 값에 대한 간단한 프로그램 [closed]

필드는 하나의 값만 가져 가기 때문에 xml 파일의 설정을 저장하기로 결정했습니다.

내 XML 파일은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<setting>
    <setting1>setting1 value</setting1>
    <setting2>setting2 value</setting2> 
    <setting3>setting3 value</setting3> 
    ....
    ....
    ....
</setting>

누구든지 날 노드와 노드 값을 읽고 편집하고 추가하고 삭제하는 간단한 PHP 스크립트를 제안 할 수 있습니까?

해결법

  1. ==============================

    1.

    XML이 정말 단순하다면 SimpleXML을 사용하여 CRUD 할 수 있습니다. SimpleXml은 XML을 SimpleXmlElements의 트리 구조로 구문 분석합니다. 요약하면 다음과 같이 사용합니다.

    // CREATE
    $config = new SimpleXmlElement('<settings/>');
    $config->setting1 = 'setting1 value';         
    $config->saveXML('config.xml');               
    
    // READ
    $config = new SimpleXmlElement('config.xml');
    echo $config->setting1;
    echo $config->asXml();
    
    // UPDATE
    $config->setting1 = 'new value';
    $config->setting2 = 'setting2 value';
    echo $config->asXml();
    
    // DELETE
    unset($config->setting1);
    $config->setting2 = NULL;
    echo $config->asXML();
    unlink('config.xml');
    

    추가 사용 예제와 API 설명은 PHP 매뉴얼을 참조하십시오.

    sidenote에서 키 / 값 쌍을 가지고 있다면 일반 old PHP 배열을 사용하여 DBA 또는 APC와 같은 키 / 값 저장소를 저장하고 long ttl로 memcached를 저장할 수도 있습니다.

  2. ==============================

    2.

    PHP XQuery 확장을 사용하여 작업을 수행 할 수 있습니다.

    let $data := <setting>
        <setting1>setting1 value</setting1>
        <setting2>setting2 value</setting2> 
        <setting3>setting3 value</setting3> 
    </setting>
    return {
        (: Update :)
        replace value of node $data/setting1/text() with "Hello World";
        (: Delete :)
        delete node $data/setting2;
        (: Read :)
        $data
    }
    

    위의 예제를 http://www.zorba-xquery.com/html/demo#BJ2a2bNxJc8JVZAl0qyjAelwN9s=에서 실시간으로 시험해 볼 수 있습니다.

    XQuery PHP 확장 기능 설치 방법은 http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery에서 확인할 수 있습니다.

  3. from https://stackoverflow.com/questions/4906073/a-simple-program-to-crud-node-and-node-values-of-xml-file by cc-by-sa and MIT lisence