人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ディレクトリ下のファイル名(画像ファイル(gif、jpg、bmp等))を取得し、DOM関数を用いてXML出力したいと考えています。

画像のファイル名を取り出し、表示するだけなら、

<?php
if ($handle = opendir('./img')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "$file\n";
}
}
closedir($handle);
}
?>

で表示されますが、
その取得したファイル名を

$img = $root->appendChild($doc->createElement('image'));
$img->appendChild(
$doc->createtextNode(画像ファイル名));

DOMでXML出力しようとするとうまくいきません。
取得したファイル名を表示させるにはどうすればよいのか、ご教授いただきたいのです。
よろしくお願いします。




●質問者: pinoco_5018
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:BMP DOC DOM echo GIF
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pahoo
●28ポイント

$rootや$docが何を指しているのかよく分からないのですが、append_childの指定に問題があるのではないかと思います。下記サイトを参考にしてください。

◎質問者からの返答

お早い回答ありがとうございます。

詳しいことを書かず、申し訳ありませんでした。

以下のソースでXML出力しています。

$doc = new domDocument('1.0');

$doc->formatOutput = true;

#root作成

$root = $doc->createElement('item');

$root = $doc->appendChild($root);

#画像ファイル名出力

$img = $root->appendChild($doc->createElement('image'));

$img->appendChild(

$doc->createtextNode($file));

<image>のタグだけが空要素で吐き出されてしまいます。何が問題なのでしょうか?


2 ● tobeoscontinue
●42ポイント

><image>のタグだけが空要素で吐き出されてしまいます。

単純に$fileが空(設定忘れ)だったということはないでしょうか。

示されたコードではうまく動いているように見えるのですが。


ファイル名の取得に面倒なのでglob()を使っています

$doc = new domDocument('1.0');
$doc->formatOutput = true;
//#root作成
$root = $doc->createElement('item');
$root = $doc->appendChild($root);
//     #画像ファイル名出力
foreach (glob('./*.{png,jpeg,bmp}',GLOB_BRACE) as $file) {
 $img = $root->appendChild($doc->createElement('image'));
 $img->appendChild(
 $doc->createtextNode($file));
}
$doc->save("/tmp/xml.xml");

結果

<?xml version="1.0"?>

<item>

<image>./Google.Yahoo_Web_Service.png</image>

<image>./XML_XParse.png</image>

<image>./android.first.png</image>

<image>./array_html.png</image>

<image>./capture.bmp</image>

</item>


画像のファイル名を取り出しを同じようにするならglob()は

glob('./img/*')

となりますがglobは名前だけではなくパスとして返すのでbasename()で名前だけにする必要があります。

◎質問者からの返答

サンプルまで記載頂きありがとうございました。

無事出力することができました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ