<< php メタ検索エンジンのページング処... 質問一覧 kakasiをphpから呼び出し、漢字混じり... >>

  • 0P
XML形成式

開発環境
OS:Windows7 32bit
PHP:5.3.1

DB側データ(MYSql)
row,unyo_id,comit_name
0,001,culc
1,002,sumb

という様なデータをXMLにて以下の様な表示にしたい。

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <result>
  3.   <row row="0">
  4.     <unyo_id>001</unyo_id>
  5.     <comit_name>culc</comit_name>
  6.   </row>
  7.  
  8.   <row row="1">
  9.     <unyo_id>002</unyo_id>
  10.     <comit_name>sumb</comit_name>
  11.   </row>
  12. </result>

上記の様なXMLを成り立たせるPHPをご教示ください。
もしくは、XMLを作成する上で基礎を付けたいので一から分かる様なサイトを
お教えください。よろしくお願い致します。

mofmof

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。

QXML形成式 mofmof  [03月08日 16時35分] 
┗Re:XML形成式 shimix  [03月08日 17時02分] 
  ┗Re:Re:XML形成式 mofmof  [03月08日 18時04分] 
    ┗Re:Re:Re:XML形成式 shimix  [03月08日 18時37分] 
      ┗Re:Re:Re:Re:XML形成式 mofmof  [03月10日 10時30分] 

コメント一覧

並び替え( ツリー順 / 投稿順[降順] / 投稿順[昇順]

Re:XML形成式

#どこから(どこまで)がわからないのかちょっと読み取れませんが(汗

とりあえずSimpleXMLElementを作ってみてはどうでしょう

  1. $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8" ?><result></result>');

あとはMySQLからデータを取得したLoopの中で($rowという配列にデータを拾ってくるとして)

  1. $newrow = $xml->addChild('row');
  2. $newrow->addAttribute('row', $row[0]);
  3. $newrow->addChild('unyo_id', $row[1]);
  4. $newrow->addChild('comit_name', $row[2]);

を繰り返せばいいように思います。最後は$xml->asXML()でXML文字列を取得すればどうにかなるんじゃないでしょうか(まったくの未検証ですのであしからず)。

  http://www.php.net/manual/ja/book.simplexml.php

Re:Re:XML形成式

>#どこから(どこまで)がわからないのかちょっと読み取れませんが(汗
すみません、すみません。全部が分からないんです。

参考URLを拝見させて頂きましたが、何というかプログラムの構文?全般が
分かりません。ピンポイントでDBからsimpleXMLで取得できる構文があれば
分かり易いのですが。

おとといきやがれ的な初心者ですみません。

Re:Re:Re:XML形成式

>ピンポイントでDBからsimpleXMLで取得できる構文があれば分かり易いのですが。

全然わからないのに『答え』だけもらってどーするんでしょう?とりあえず動くかもしれませんが、すぐにお手上げになるだけだと思いますけど・・。

なお、MySQLからデータを引っ張ってくるくらいのサンプルはマニュアルにあります。まずはマニュアルを読んでください。プログラムの構文全般がわからないのであれば、なおさらです。関数の詳細(引数とか戻り値とか注意点とか)を覚える必要はありませんが、基本的な制御構文とどういう関数があるのかくらいは、覚えてください。百歩譲って、覚えてなくてもいいですから「マニュアルで引ける」状態でないと困ります。


以下マニュアルから丸写しして組み込みました(汗
  http://www.php.net/manual/ja/function.mysql-fetch-array.php
  1. <?php
  2. $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8" ?><result></result>');
  3.  
  4. mysql_connect('localhost''mysql_user''mysql_password') or die('dberror: ' . mysql_error());
  5. mysql_select_db('mydb');
  6. $result = mysql_query('SELECT * FROM mytable order by row');
  7.  
  8. while ($row = mysql_fetch_array($result)) {
  9.     $newrow = $xml->addChild('row');
  10.     $newrow->addAttribute('row'$row['row']);
  11.     $newrow->addChild('unyo_id'$row['unyo_id']);
  12.     $newrow->addChild('comit_name'$row['comit_name']);
  13. }
  14. mysql_free_result($result);
  15.  
  16. print nl2br(htmlspecialchars($xml->asXML()))// デバッグ用の表示
  17. ?>

最後は、デバッグ表示でなければ(そのままブラウザに返すのであれば)
  1. if (!headers_sent()) {
  2.     header('Content-type: text/xml');
  3.     print $xml->asXML();
  4. }
でいいかもしれません(未検証です)。ファイルとして保存するのかもしれませんし、このあたりは用途次第です。

Re:Re:Re:Re:XML形成式

ご回答ありがとうございます。
まずは、マニュアルの件ですが心得ました。

>全然わからないのに『答え』だけもらってどーするんでしょう?
→ すみません。
 考え方の違いかもしれませんが、答えから考えた方を見つける様な動きをしているもので。
 シンプルなものから理解をするのがいいのかなと思っていました。

マニュアルはひける様にします。
ありがとうございした。
php メタ検索エンジンのページング処... 質問一覧 kakasiをphpから呼び出し、漢字混じり...