• ベストアンサー

PHPでHTML, XMLのパース機能?

よくHTMLやXMLをTree構造でParseする関数がPerlにあったりするのですが、PHP(Ver4.3)ではどのようにするのでしょうか?

  • PHP
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

私が使ったことがあるのは以下です。 DOM http://www.php.net/manual/ja/ref.dom.php http://www.php.net/manual/ja/ref.domxml.php Tidy http://www.php.net/manual/ja/ref.tidy.php 両方とも同じものがperlにもあるので、だいたいご存知だと思いますが、DOMの方が高機能です。

関連するQ&A

  • PHPでXML→HTML

    PHPでXMLをHTMLに整形し直して出力しようと思っているのですが、イマイチよい資料が見つかりません。 (手元にある「PHP4徹底攻略改訂版」でも、あまりXMLを扱うことについては扱っていませんでした) http://www18.tok2.com/home/koumori27/xml/pxml/pxml_menu.html 何となく、ここに書いてあるのが参考になるような感じがするのですが、サンプルコードを見ても、いったい何をやっているのかわかりません。 何か良い参考サイトなどがありましたら教えてください。 PHP4.2.2環境です。

    • 締切済み
    • PHP
  • C++: HTMLパーサを探しています。

    C++のHTMLパーサライブラリを御存じの方がおられましたら、教えて頂けませんでしょうか。 XMLパーサはちらほら見つかるのですが、HTMLの解析ができるものを探しております。 PerlモジュールのHTML::TreeBuilderのようなtree構造の解析までできるものが理想です。 宜しくお願いいたします。

  • XMLもHTMLに似たものなのでしょうか?

    ホームページは、HTMLで作成しますが XMLもHTMLに似たものなのでしょうか? HTMLについて調べていると たまにXMLと言う言葉も目にします。 XMLについていまいちイメージが掴めないのですが HTMLを「ソースを書いてホームページを作る拡張子」としたら XMLは何でしょうか?

    • ベストアンサー
    • HTML
  • xml_parse_into_structを使うと、xmlの中のCDATAが消える

    XMLデータを取得するプログラムをPHP5で製作しています。 以下、コーディング ----------------------------------------------------------- $contents = file_get_contents($restURL); $parser = xml_parser_create('UTF-8'); xml_parse_into_struct($parser,$contents,$values); xml_parser_free($parser); ----------------------------------------------------------- file_get_contentsでXMLデータの取得した時点では、例えば  <img><![CDATA[<hogehoge>]]></img> というふうにCDATAが格納されていることは確認できています。 しかし、xml_parse_into_structで配列構造体にXMLデータを格納すると、   [0] => Array ( [tag] => IMG [type] => complete [level] => 4 [value] => ) という感じに、"value"の中の値が空になってしまいます。 xml_parse_into_structで"CDATA"が消えずに配列構造体される方法、 または、xml_parse_into_struct以外で"CDATA"が消えずに配列構造体に 設定される手法はありますでしょうか。

    • ベストアンサー
    • PHP
  • HTMLとXML

    XMLとHTMLの言語の内容はどのくらい違うものですか? HTML言語をある程度マスターしていればXMLに対応できるのか、疑問に思っています。 またHTMLで書かれたWEBページとXMLで書かれたWEBページでは、大きな点で何が異なってくるのでしょうか?最近はXMLのほうが主流になりつつある、なんてよく聞きますが・・・

  • HTMLをパースしたい

    こんにちわ ActionScriptでHTMLをパースしてHTML要素を追加したり、削除したりしたいのですが、HTMLをパースできるクラスが見つかりません。(ないような気がします。)XMLをパースするクラスがあったのですが、XMLでHTMLをパースをパースすると<br>等終了タグがない要素でエラーが出てしまいます。 というような状況で、HTMLをパースする方法、またよい代替案をご存知のかた、ぜひご伝授していただけますでしょうか?よろしくお願いいたします。

  • FireFoxにてPHPで生成したをXML表示するには?

    PHPにてXML文書を生成して、それをXMLデータを読み取るFlashにデータを渡す処理を作成しました。 そこで、作成されるXML文書を確認するため、 IE7にて、http://hoge.ne.jp/xml.phpと入力してXMLのツリー上になっていることを確認しました。 ですが、ブラウザをFireFoxに切り替えたら文字化けされた(?)文書が表示されるのみです。 ためしに生成されたソースをそのまま、サーバに上げたらツリーが表示されました。 FireFoxでもIEと同様にXMLをツリー形式で見るにはどのようにしたらいいのでしょうか? 出来るなら、ブラウザ関係なく見れるのが好ましいですが、 最低限FireFoxだけでもいいので表示したいと思っています。 わかる方がおられたらご教示ください。 以上、よろしくお願いします。

  • HTMLからXMLに

    HTMLファイルからXMLファイルに変換する?方法を教えてください。 ソフトがあれば、それがあるサイト教えてください。 HTMLのソースをXMLにするにはどうしたら良いでしょうか 助けてください!!

    • ベストアンサー
    • XML
  • PHPでHTMLをXMLに変換したときに消える内容

    教えてください。 スクレイピングのために、よく分からないままに、 PHPでHTMLをXMLに変換して、Xpathで参照しようとしています。 が。 その前段で、「HTML内に存在する内容が、XMLに変換した際に 消えてしまう」という現象に悩まされております。 例を挙げますと、 --------------------------------------- <html> <body> <table> <tr> <td><b>foo</b> bar<br> </td> </tr> </table> </body> </html> --------------------------------------- みたいなページを、 --------------------------------------- <?php $html = file_get_contents('http://xxxxxxxxxxxxxxxxx.com/foobar.html'); $dom = new DOMDocument(); @$dom->loadHTML($html); $xml = simplexml_import_dom($dom); print_r($xml); ?> --------------------------------------- のように処理すると、 --------------------------------------- SimpleXMLElement Object ( [body] => SimpleXMLElement Object ( [table] => SimpleXMLElement Object ( [tr] => SimpleXMLElement Object ( [td] => SimpleXMLElement Object ( [b] => foo [br] => SimpleXMLElement Object ( ) ) ) ) ) ) --------------------------------------- のような結果になって、「あれ?fooはいるけど、barは何処いった?」となります。 分かっている方には、「そりゃ、おまえ、あたりまえだよwww」 「つーか、なにやっとんのwww」って感じなのかもしれませんが、 さっぱり分かりません。 元のHTMLの書きぶりがダメだからということでしょうか。 お手数をお掛けしますが、どうぞ、ご教授ください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • XMLファイルをPHPで読み込むには?

    PHPとXMLを勉強しております。タイトル通りなのですが、どのようにすればよいのでしょうか? PHP4とPHP5ではやりかたが違うようなのですが・・・。 一応自分なりに調べてみたのですがphp5ではsimpleXML関数を使用すればできるようなのですが、私が使用しているサーバーがロリポップでして、PHP4ではどうすればいいのでしょうか。 PEARを使用するといった文章をよく観たのですが、さっぱりわからない状態です。 PEARの使い方を初心者でもわかりやすく書いてあるサイトはありませんでしょうか。できればPEARを使用せずにXMLを読み込む方法などもありましたら、ご助言をお願いいたします。

    • ベストアンサー
    • XML

専門家に質問してみよう