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>
- 전체건수: <?= $OB_SrchInfo->totcnt ?> <br>
- 요청건수값: <?= $OB_SrchInfo->maxcnt ?> <br>
- 출력건수: <?= $OB_SrchInfo->outcnt ?> <br>
- 출력페이지번호: <?= $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 버전도 만들어 봐야겠다~~~~