달력

5

« 2024/5 »

  • 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
  • 27
  • 28
  • 29
  • 30
  • 31
2008. 5. 15. 20:21

PHP DOM 파서 활용 예제 용-ILE/PHP2008. 5. 15. 20:21

http://suite.tistory.com/

fs  2007.03

실제로 적용해본적은 없다 ㅋㅋ


common.php souce
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<?
 /* php 돔파서 버전  2008 fs */ 

 class T_DOC{
   var $id;
   var $sim;
   var $item=array();
 }

 class SrchInfo{

  var $m_RESULT=array();

  var $m_URL;
  function SrchInfo(){
    $ROOT_URL="http://locahost:6973/test.cgi";
    $this->m_URL=$ROOT_URL;
  }
 
  function SetQRY($p_name,$p_value){
    $this->m_URL=$this->m_URL.$p_name."=".$p_value."&";
  }

  // 헤더 정보 변수
  var $head1;
  var $head2;
  var $head3;
 

  function GetHeader($ROOT){
  
   $H_CHILD=$ROOT->documentElement->firstChild->nextSibling;
   $this->head1=$H_CHILD->getAttribute("name");

   $H_CHILD=$H_CHILD->firstChild->nextSibling;
   $this->head2=$H_CHILD->nodeValue;;

   $H_CHILD=$H_CHILD->nextSibling->nextSibling;
   $this->head3=$H_CHILD->nodeValue;;


  }
  function GetResults($ROOT){

   for($B_CHILD=$ROOT->documentElement->firstChild->nextSibling->firstChild,
       $i=0;$i<19;$B_CHILD=$B_CHILD->nextSibling,$i++){
   }
   //echo $B_CHILD->nodeValue;
   for(;$B_CHILD;$B_CHILD=$B_CHILD->nextSibling->nextSibling){

     $TMP_DOC=new T_DOC();

     $TMP_DOC->doc=$B_CHILD->getAttribute("doc");
     $TMP_DOC->type=$B_CHILD->getAttribute("type");

     for($DATA_CHILD=$B_CHILD->firstChild->nextSibling;$DATA_CHILD;$DATA_CHILD=$DATA_CHILD->nextSibling->nextSibling){
       $tag=$DATA_CHILD->getAttribute("name");
       $value=$DATA_CHILD->nodeValue;
       $TMP_DOC->item[$tag]=$value;

     }
     array_push($this->m_RESULT,$TMP_DOC);
   }
  }

 }//end of class

?>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sample.php 샘플 페이지

<?
 include "common.php";

 $OB_SrchInfo=new SrchInfo();

 $OB_SrchInfo->SetQRY("where","total");

 $Q=$_GET["QRY"];
 //$Q=$_POST["QRY"];
 if(strlen($Q)==0) $Q="*";

 //쿼리지정
 $OB_SrchInfo->SetQRY("qry",rawurlencode( iconv("UTF-8", "EUC-KR", $Q)));

 //  xml 파서 시작
 $ROOT= new DOMDocument();
 $ROOT->load($OB_SrchInfo->m_URL);
 echo "<xmp> XML URL:".$OB_SrchInfo->m_URL."</xmp>";

 // 헤더 정보 담기
 $OB_SrchInfo->GetHeader($ROOT);
 // 값을 $OB_SrchInfo->m_RESULT 에 담아옴
 $OB_SrchInfo->GetResults($ROOT);
 

?>

 <HEAD>

 <TITLE>XML PHP 파서 샘플 페이지</TITLE>

 </HEAD>

 <BODY>
 <P>
 <table>
 <form name=form action=index.php method=get>
  검색어:<input type=text name=QRY value=<?= $Q ?>>
  <input type=submit value="검색">
 </form>

 </table>
 <검색 결과 헤더 정보> : <br>
  &nbsp;&nbsp;- 전체건수: <?= $OB_SrchInfo->totcnt ?> <br>
  &nbsp;&nbsp;- 요청건수값: <?= $OB_SrchInfo->maxcnt ?> <br>
  &nbsp;&nbsp;- 출력건수: <?= $OB_SrchInfo->outcnt ?> <br>
  &nbsp;&nbsp;- 출력페이지번호: <?= $OB_SrchInfo->pagenum ?> <br>

 <p>
 <검색 결과 데이터> :
 <p>


<?

 for($i=0;$i<sizeof($OB_SrchInfo->m_RESULT);$i++){
  $DATA=$OB_SrchInfo->m_RESULT[$i];
  echo "번호: ".($i+1)."<br>";
  echo "ID: ".$DATA->item["id"]."<br>";
  echo "날짜: ".$DATA->item["year"]."<br>";
  echo "제목: ".$DATA->item["title"]."<br>";
  echo "내용: ".$DATA->item["abstract"]."<br><p>";
 }

?>


JSP 나 .net 버전도 만들어 봐야겠다~~~~



 

:
Posted by mastar