2011-01-23 16 views
0

私のデータベースから情報を引き出し、APIに対してチェックするこのコードがあります。私はテーブルに戻り情報をカスタマイズしようとしています。私は、私が好きなものを示すための写真を含めるでしょう。私はどこでも検索しましたが、これをコーディングする方法はわかりません。 CSSを心配しないでください。ちょうど情報をテーブルに埋め込むだけです。XML形式で返されたフィードコンテンツのスタイル付け

<?php 
     $key = "********************"; 
     $address = urlencode($CustomFields->field('jr_address',$listing,false,false)); 
     $city = $listing['Category']['title']; 
     $zip = $CustomFields->field('jr_zipcode',$listing,false,false); 
     $url = "http://api.greatschools.org/schools/nearby?key={$key}&address={$address}&city={$city}&state=MI&zip={$zip}&schoolType=public-charter&levelCode=elementary-schools&minimumSchools=50&radius=10&limit=5"; 
     $curl = curl_init(); 
     curl_setopt($curl, CURLOPT_URL, $url); 
     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
     $response = curl_exec($curl);  
     curl_close($curl); 
     print_r($response); 
?><style type='text/css'>gsId{display:none;}name{color:#9BB055; font-size:18px;}type{display:none;}gradeRange{}enrollment{}gsRating{}city{display:none;}state{display:none;}district{}districtNCESId{display:none;}address{display:none;}phone{display:none; }fax{display:none;}ncesId{display:none;}lat{display:none;}lon{display:none;}</style> 

リターンコード:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<schools> 
<school> 
<gsId>6350</gsId> 
<name>Chinese Education Center</name> 
<type>public</type> 
<gradeRange>K-5</gradeRange> 
<enrollment>63</enrollment> 
<gsRating>3</gsRating> 
<city>San Francisco</city> 
<state>CA</state> 
<district>San Francisco Unified School District</district> 
<districtNCESId>0634410</districtNCESId> 
<address>657 Merchant St., San Francisco, CA 94111</address> 
<phone>(415) 291-7918</phone> 
<fax>(415) 291-7965</fax> 
<ncesId>063441005596</ncesId> 
<lat>37.795</lat> 
<lon>-122.4042</lon> 
<overviewLink>http://www.greatschools.org/california/san-francisco/6350-Chinese-Education-Center/?s_cid=gsapi</overviewLink> 
<ratingsLink>http://www.greatschools.org/school/rating.page?state=CA&amp;id=6350&amp;s_cid=gsapi</ratingsLink> 
<reviewsLink>http://www.greatschools.org/school/parentReviews.page?state=CA&amp;id=6350&amp;s_cid=gsapi</reviewsLink> 
</school> 
<school> 
<gsId>6389</gsId> 
<name>Gordon J. Lau Elementary School</name> 
<type>public</type> 
<gradeRange>K-5</gradeRange> 
<enrollment>667</enrollment> 
<gsRating>7</gsRating> 
<city>San Francisco</city> 
<state>CA</state> 
<district>San Francisco Unified School District</district> 
<districtNCESId>0634410</districtNCESId> 
<address>950 Clay St., San Francisco, CA 94108</address> 
<phone>(415) 291-7921</phone> 
<fax>(415) 291-7952</fax> 
<website>http://www.gjles.org/</website> 
<ncesId>063441005599</ncesId> 
<lat>37.794</lat> 
<lon>-122.4086</lon> 
<overviewLink>http://www.greatschools.org/california/san-francisco/6389-Gordon-J.-Lau-Elementary-School/?s_cid=gsapi</overviewLink> 
<ratingsLink>http://www.greatschools.org/school/rating.page?state=CA&amp;id=6389&amp;s_cid=gsapi</ratingsLink> 
<reviewsLink>http://www.greatschools.org/school/parentReviews.page?state=CA&amp;id=6389&amp;s_cid=gsapi</reviewsLink> 
</school> 
</schools> 

私はそれはこのように見えるようにスクリプトを作成する方法がわからない:画像へ リンク: link text


ので、新しいファイルは次のようになりますか?

<?php 
    $key = "xxxxxxxxxxxxxxxxxxxxxxxx"; 
    $address = urlencode($CustomFields->field('jr_address',$listing,false,false)); 
    $city = $listing['Category']['title']; 
    $zip = $CustomFields->field('jr_zipcode',$listing,false,false); 
    $url = "http://api.greatschools.org/schools/nearby?key={$key}&address={$address}&city={$city}&state=MI&zip={$zip}&schoolType=public-charter&levelCode=elementary-schools&minimumSchools=50&radius=10&limit=5"; 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    $response = curl_exec($curl);  
    curl_close($curl); 
    echo (xml2html($response, "/xslt/schools.xsl"); 

?>

私はエコーライン上のエラーを取得します。

これはどこに行きますか?

<?php 
function xml2html($xmldata, $xslPath) 
{ 
    /* $xmldata -> your XML */ 
    /* $xsl -> XSLT file */ 

    $arguments = array('/_xml' => $xmldata); 
    $xsltproc = xslt_create(); 
    xslt_set_encoding($xsltproc, 'ISO-8859-1'); 
    $html = 
     xslt_process($xsltproc, 'arg:/_xml', $xslPath, NULL, $arguments); 

    if (empty($html)) { 
     die('XSLT processing error: '. xslt_error($xsltproc)); 
    } 
    xslt_free($xsltproc); 
    return $html; 
} 
?> 
+0

意志つ以上の学校とたぶん、XMLドキュメント:(あなたは、XSL(例えば、「XSLT/schools.xsl」サーバーのフォルダのどこかにファイル)やXML応答を変換し保存する必要があります)もっと助けてください。また、各学校には緯度と経度がありますが、学校からの距離を計算するポイントの座標は何ですか?これはあなたの質問では指定されていません。 –

+0

私は上記のコードに別の学校を含めました。緯度と経度までは、投稿した画像(元の投稿の一番下)を見たかどうかは分かりません。私はそれを隠しているだけだろう。アドレス情報をAPIに送信すると、近くにある学校を並べ替えます。私の挑戦は、私の知識は非常に限られており、私はどのようにこれをコード化するかが分かりません。それはここをクリックして住んで表示するには –

+0

: http://www.landcontractgr.com/component/content/article/113-jenison/96-7681-thomas-ave を、それがXSLTスタイルシートに関する教育タブ –

答えて

0

ブラウザはカスタムXML(つまり、学校のxml)を視覚化できません。 これを手動でHTMLに変換する必要があります。

  1. 解析XML xml parser functions
  2. と(私のためとして、より良いアプローチ)XSLTシートでXMLを変換:私は2つのソリューションを知っています。私は次のXSLTを書いたofferred XMLについては

link text

変換が機能xslt_processによって適用することができた(ごめん、外部リンクのために、私はここに貼り付けXSLTコードで原因不明のトラブルを持っています)。 ?

<?php 
function xml2html($xmldata, $xslPath) 
{ 
    /* $xmldata -> your XML */ 
    /* $xsl -> XSLT file */ 

    $arguments = array('/_xml' => $xmldata); 
    $xsltproc = xslt_create(); 
    xslt_set_encoding($xsltproc, 'ISO-8859-1'); 
    $html = 
     xslt_process($xsltproc, 'arg:/_xml', $xslPath, NULL, $arguments); 

    if (empty($html)) { 
     die('XSLT processing error: '. xslt_error($xsltproc)); 
    } 
    xslt_free($xsltproc); 
    return $html; 
} 

// making request... 
$response = curl_exec($curl);  
curl_close($curl); 
echo(xml2html($response, "/xslt/schools.xsl")); 

>

+0

アレックス、私はあなたの迅速な応答に感謝しますが、私はこれをコード化する方法がわかりません。私の限られた知識のために私は立ち往生しています。私はコードのライブバージョンを持っています。 リンク: http://www.landcontractgr。com/component/content/article/113-jenison/96-7681-thomas-ave 私は全員にコードを書くことを求めていません。それは私がテーブルを持ってどこのセルを呼んでセルにして、すべてのものを私がどのように見えるようにするかわからないだけです。 –

+0

こんにちはCarl。上のあなたのリンクは、いくつかの住宅販売の提案につながります。だから私はあなたの問題を実際に理解していません。あなたはサービスからxmlドキュメントとして応答を得なければなりません。次に、上記で取り上げたXSLTファイルの助けを借りて、XMLからHTMLへの変換にPHP関数xslt_processを使用します。変換の結果は、スタンダードHTMLテーブルになります。次に、CSSまたはJavaScriptを使用して行を塗りつぶすことができます。 –

+0

ええ、それは教育のタブの下にあります。私はスクリプトにxslt_processをコードする方法を知らない。また、HTML出力を取得するためにコードの後に​​必要なものはわかりません。たとえば、​​

関連する問題