xml을 뽑아 내는게 쉽지가 않네요.

안녕하세요. 또 왔습니다. openapi 책 검색 땜시 ^^;

#### book2.php

<script>
function aa(a) {
 if(!fom1.title.value) {
     alert("값을 입력하세요")
        return false;
    }
    fom1.submit();
}
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<p>책 검색</p>
<p>
<form name="fom1" method="post" action="book3.php">
  <input type="text" name="title">
  <a href="#" onclick="aa()">검색</a></p>
</form>
</body>
</html>

######### book3.php

<?

header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-type: text/html; charset=utf-8");

$title = iconv("EUC-KR", "UTF-8",$title);
$title = urlencode($title);
//$title = mb_convert_encoding($title, "euc-kr", "UTF-8");
//$title = rawurlencode($keyword);
$key = "[인증키]";
//$url="http://openapi.naver.com/search?key=$key&query=$title&display=10&start=1&target=book&sort=sim";
//$url="openapi.naver.com/search?key=$key&query=$title&display=10&start=1&target=book&sort=sim";

include "Snoopy.class.php";
$snoopy = new Snoopy;

//$submit_url = "http://lnk.ispi.net/texis/scripts/msearch/netsearch.html";
//$submit_url="http://openapi.naver.com/search?key=$key&display=10&start=1&target=book&sort=sim&query=$title";
$submit_url = "http://openapi.naver.com/search?key=$key&query=art&display=10&start=1&target=book_adv&d_titl=$title";
//$url = $submit_url;
echo $submit_url;

$submit_vars["q"] = "amiga";
$submit_vars["submit"] = "Search!";
//$submit_vars["searchhost"] = "Altavista";


if($snoopy->submit($submit_url,$submit_vars))
{   /*
 while(list($key,$val) = each($snoopy->headers))
  echo $key.": ".$val."<br>\n";
 echo "<p>\n"; */

 //$xmld = "<PRE>".htmlspecialchars($snoopy->results)."</PRE>\n";
    $xmld = htmlspecialchars($snoopy->results)."\n";
    echo htmlspecialchars($snoopy->results)."\n";
 }
else
 echo "error fetching document: ".$snoopy->error."\n";

echo "<p></p><p></p><p></p>";

 


class Xml
{
  var $tag;
  var $value;
  var $attributes;
  var $next;
}

function xml2array($xml_string)
{
  $Parser = xml_parser_create();
  xml_parser_set_option($Parser, XML_OPTION_CASE_FOLDING, 0);
  xml_parser_set_option($Parser, XML_OPTION_SKIP_WHITE, 1);
  xml_parse_into_struct($Parser, $xml_string, $Xml_Values);
  xml_parser_free($Parser);
  $XmlClass = array();
  $LastObj = array();
  $NowObj = &$XmlClass;

  foreach($Xml_Values as $Xml_Key => $Xml_Value)
  {
      $Index = count($NowObj);
      if($Xml_Value["type"] == "complete")
      {
          $NowObj[$Index] = new Xml;
          $NowObj[$Index]->tag = $Xml_Value["tag"];
          $NowObj[$Index]->value = $Xml_Value["value"];
          $NowObj[$Index]->attributes = $Xml_Value["attributes"];
      }
      elseif($Xml_Value["type"] == "open")
      {
          $NowObj[$Index] = new Xml;
          $NowObj[$Index]->tag = $Xml_Value["tag"];
          $NowObj[$Index]->value = $Xml_Value["value"];
          $NowObj[$Index]->attributes = $Xml_Value["attributes"];
          $NowObj[$Index]->next = array();
          $LastObj[count($LastObj)] = &$NowObj;
          $NowObj = &$NowObj[$Index]->next;
      }
      elseif($Xml_Value["type"] == "close")
      {
          $NowObj = &$LastObj[count($LastObj) - 1];
          unset($LastObj[count($LastObj) - 1]);
      }

  }
  return $XmlClass;
}

$data = $xmld;

$Xml = xml2array($data);
print_r($Xml)."\n";

?>

book2.php 에서 말의향기 라는 검색어를 사용하면

#############  book3.php 에서의 xml 페이지는

http://openapi.naver.com/search?key=[인증키]&query=art&display=10&start=1&target=book_adv&d_titl=%EB%A7%90%EC%9D%98%ED%96%A5%EA%B8%B0<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Naver Open API - book_adv ::'art'</title><link>http://search.naver.com</link><description>Naver Search Result</description><lastBuildDate>Sun, 07 Oct 2007 13:40:23 +0900</lastBuildDate><total>3</total><start>1</start><display>3</display><item><title>마음의 &lt;b&gt;향기&lt;/b&gt; 좋은 &lt;b&gt;말&lt;/b&gt; 1000가지</title><link>http://book.naver.com/bookdb/book_detail.php?bid=112905</link><image>http://bookimg.naver.com/coverimg/libro/book_img/1754/0100004398728_01.jpg</image><author>좋은님 100인</author><price>3000</price><discount>2250</discount><publisher>좋은생각 </publisher><pubdate>20020827</pubdate><isbn>8986429446</isbn><description>우리 주위에 있는 칭찬의 &lt;b&gt;말&lt;/b&gt;, 기쁨의 &lt;b&gt;말&lt;/b&gt;, 감사의 &lt;b&gt;말&lt;/b&gt;, 격려의 &lt;b&gt;말&lt;/b&gt; 1000가지를 한 손에 들어오는 크기의 작은 책에 담았다. 1장 풍경이 되는 &lt;b&gt;말&lt;/b&gt;에는 가정, 학교, 직장, 이웃 등 삶의 풍경 속에서 피어나는 친근한 &lt;b&gt;말&lt;/b&gt;...</description></item><item><title>창작과비평 127호 - 대지의 &lt;b&gt;향기&lt;/b&gt;, 꽃속에서 터진 &lt;b&gt;말&lt;/b&gt; : 조태일론 &amp;lt;평론&amp;gt;</title><link>http://book.naver.com/bookdb/book_detail.php?bid=1547007</link><image>http://bookimg.naver.com/coverimg/booktopia/book_down/BookImg/Detail/0504/05040552.gif</image><author>손택수</author><price></price><discount>0</discount><publisher>창비</publisher><pubdate>20050220</pubdate><isbn>6000138364</isbn><description></description></item><item><title>&lt;b&gt;말의&lt;/b&gt; &lt;b&gt;향기&lt;/b&gt;</title><link>http://book.naver.com/bookdb/book_detail.php?bid=1309653</link><image></image><author>허영자</author><price>2500</price><discount>0</discount><publisher>고려원</publisher><pubdate>19000101</pubdate><isbn>2001076820</isbn><description></description></item></channel></rss>

Array ( )

///////////////////////////////

 

xml 에 있는것을 첨부파일에 있는 오른쪽에 있는것 처럼 필요한 책이름 , 책저자, 출판사 등을 나타내어 선택을 누러면

오른쪽 iframe 으로 값을 전달해서 등록을 누러면 DB에 저장 되게 하려고 합니다.

그래도 많이 왔네요. 처음에 우찌해야 될지 몰라 걱정했는데.. 쫌 도와주세요...

"공대여자는 이쁘다"  ㅎㅎㅎㅎㅎ ^^; 좋은 하루되세요.

댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📅 달력형