PHP & Others

xml php 배열로 뽑아내고 html 에 출력하기

페이지 정보

본문

xml 을 사용하면 여러가지로 편릴할 것 같아서
데이타성격을 가지고 있는 것들을 xml 로 만들어서
그걸 다시 php에서 변수로 담는 작업을 합니다.
드 다음에 xml 에 담아 있는 값을 원하는 형태의 값으로 변형시킨다음에
템플릿을 사용해 출력하는 방식을 해 보았습니다.

1. XML
<DATA>
        <ARTICLE>
                <uid>1</uid>
                <subject>xml test</subject>
                <signdate>2004-04-06</signdate>
        </ARTICLE>

        <ARTICLE>
                <uid>2</uid>
                <subject>xml ok test</subject>
                <signdate>2004-04-06</signdate>
        </ARTICLE>
</DATA>

2. 사용할 템플릿 변수와 사용될 함수등을 배열로 등록해 놓습니다.
$xml_vars["제목"]= array("use"=>1, "field"=>"", "merge"=>"", "method"=>"str_magic", "run"=>array("[subject]", 30, ", "", "", &$http_p_vars));
$xml_vars["AHREF"]= array("use"=>1, "field"=>"[uid]", "merge"=>"./?mode=read&uid=", "method"=>"", "run"=>array());
$xml_vars["등록일"]        = array("use"=>1, "field"=>"", "merge"=>"", "method"=>"runDate", "run"=>array("[signdate]","datePrintType","Y. m. d"));

3. xml 을 배열로 추출하고 2 에 있는 배열과 함께 돌려서 원하는 값으로 배열에 저장 합니다.

$ClassProgram_->runXml(&$http_g_vars["_dir_path"], "qnda.xml");

$count = count($ClassProgram_->multiClass["Xml"]->arr->DATA[0]->ARTICLE);                       
for($i=0; $i<$count; $i++)
{                               
$arr[$i]["subject"].= $ClassProgram_->multiClass["Xml"]->arr->DATA[0]->ARTICLE[$i]->subject[0];
$arr[$i]["signdate"].= $ClassProgram_->multiClass["Xml"]->arr->DATA[0]->ARTICLE[$i]->signdate[0];
$arr[$i]["uid"].= $ClassProgram_->multiClass["Xml"]->arr->DATA[0]->ARTICLE[$i]->uid[0];
}
                       
$LOOP1 = $ClassProgram_->xmlLoop(&$arr,  &$xml_vars);

4. 템플릿 프로그램에서 이를 출력합니다.

PHP5라면 SimpleXML을 이용해서 무지 쉽게 할 수 있습니다.

관련자료

등록된 댓글이 없습니다.
Today's proverb
“무릇 물이란 지세를 따라 흐르되 작은 틈도 놓치지 않고 적시니 지혜를 갖춘 자와 같고, 움직이면서 아래로 흘러가니 예를 갖춘 자와 같으며, 어떤 깊은 곳도 머뭇거리지 않고 들어가니 용기를 가진 자와 같고 장애물이 막혀서 갇히면 고요히 맑아지니 천명을 아는 자와 같으며, 험한 곳을 거쳐 멀리 흐르지만 끝내 남을 허물어뜨리는 법이 없으니 덕을 가진 자와 같다. 천지는 이것으로 이루어지고, 만물은 이것으로 살아가며, 나라는 이것으로 안녕을 얻고, 만사는 이것으로 평안해지며, 만물은 이것으로 바르게 되는 것이다. 이것이 지혜로운 자가 물을 좋아하는 이유이다.” (한영, <<한시외전>>)