PHPで、HTMLよりXMLを生成する方法を探しています。

条件としては、検索結果ページの様に回帰的にグルグル並んでいるHTMLより、データの所得を行いたいと考えています。
なお、PHP5でもOKです。また、英語ページでもokです。よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:ito-yu No.1

回答回数323ベストアンサー獲得回数14

ポイント20pt

http://www.hatena.ne.jp/1122080909

人力検索はてな - 【ブログ.txt => $array PHP】(500pt) ブログのエクスポートファイルを、連想配列に取り込むスクリプト書ける方、いらっしゃいますか? 【要望】 ↓このファイルを読み込..

元のHTMLを見ないとなんとも言えないですが、URLの質問の回答は参考になりませんか?

ポイントは、区切り文字を探すこと、mb_eregで抽出する、というところかな。

具体的なHTMLを出してもらえれば、もっと適切な回答ができると思います。

配列に取り込めば、XMLに加工するのは簡単ですよね。

id:naguro

うーん。。。やはり教えてもらったように、原始的にやるしかないのかしら。。

2005/08/01 22:40:13
id:ito-yu No.2

回答回数323ベストアンサー獲得回数14

ポイント20pt

http://www.hawk.34sp.com/stdpls/php/pear_xml_tree.html

Hawk's W3 Laboratory : PHP : PEAR :: XML_Treeを使う

読み込みたいHTMLがXHTML準拠であれば、XMLをパースする関数を利用してツリーとして取り込んでから、改めてはき出すのが良いと思います。URLのPEAR::XML_Treeとか

http://pecl.php.net/package/html_parse

PECL :: Package :: html_parse

PECLのhtml_parseは、実用レベルかわかりませんが…

Tidy関数でもいいかも

id:naguro

ありがとう!

研究してみますね。

2005/08/01 23:45:37
id:EPP No.3

回答回数12ベストアンサー獲得回数0

ポイント20pt

外していたらポイント不要です。


PHP4(正確には3.0.6)以降で標準で用意されている、xml_parser関数を使うのはどうでしょうか?


こちらのURLの方法では、XML(HTMLも含まれます)を上から順に解読して、開始タグ、終了タグ、タグ内のテキスト毎に、イベントハンドラが呼び出されます。

XMLを作る(もしくはXMLを作るための配列を作りこむ)イベントハンドラを作ってやる必要がありますが、単にHTMLを正規表現でマッチングさせるよりは良い方法だと思います。

こちらの方法ではxml_parse_into_struct関数を使用して、XML(HTMLも含まれます)を解読して連想配列にパース結果を格納します。

パース結果から求めるXMLを出力する処理を書く必要があります。


どちらにせよ全く処理を書かずにお手軽にとは行きません。

id:naguro

ありがとう。

2005/08/02 15:03:20

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません