딱 이런 순서로 사용한다.



// initialize parser

$xml_parser = xml_parser_create();


// set callback functions

xml_set_element_handler($xml_parser, "startElement", "endElement");

xml_set_character_data_handler($xml_parser, "characterData");


if (!xml_parse($xml_parser, $result, TRUE))

{

die(sprintf("XML error: %s at line %d",

xml_error_string(xml_get_error_code($xml_parser)),

xml_get_current_line_number($xml_parser)));

}


// clean up

xml_parser_free($xml_parser);






다음으로, 여기서 각각의 XML Node 처리 함수를 구현하면 끝난다.



// use this to keep track of which tag the parser is currently processing

$currentTag = "";

$currentAttr = array();

$AttrCount = 0;

$currentValue = "";


function startElement($parser, $name, $attrs) {

global $currentTag, $currentAttr;

$currentTag = $name;


// output opening HTML tags

switch ($name) {

case "CODE":

break;


case "DESC":

break;


case "VALUES":

break;


case "ENCRYPTED":

break;


case "DECRYPTED":

break;


default:

break;

}

}


// process data between tags

function characterData($parser, $data) {


global $currentTag, $currentAttr, $AttrCount, $currentValue;

global $code, $desc;


// format the data

switch ($currentTag) {

case "CODE":

$code = $data;

break;


case "DESC":

$desc = $data;

break;


case "VALUES":

$currentAttr[$AttrCount] = $data;

break;


case "ENCRYPTED":

$currentValue = $data;

break;


case "DECRYPTED":

$currentValue = $data;

break;


default:

break;

}

}


function endElement($parser, $name) {

global $currentTag, $AttrCount;


// output closing HTML tags

switch ($name) {

case "CODE":

break;


case "DESC":

break;


case "VALUES":

$AttrCount++;

break;


case "ENCRYPTED":

break;


case "DECRYPTED":

break;


default:

break;

}


// clear current tag variable

$currentTag = "";


'Tech: > Linux·PHP' 카테고리의 다른 글

Linux에 PHP + Apache + MySQL 설치하기  (0) 2008.06.26
기타 유용한 정보들  (0) 2008.06.26
XMLHttp 구현하기  (0) 2008.06.26
Windows 2000에 PHP 모듈 설치법  (0) 2008.06.26
UNIX - Linux 명령어 모음  (0) 2008.06.26


Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]