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

PHPのDOM操作について質問です。
以下のようなテキストをDOMオブジェクト化する方法はありませんか?

texttexttexttexttext<img src="aaa.png" class="hoge" /><img src="bbb.png" class="foo" />texttexttexttexttext

DOMDocument->createTextNode()
でオブジェクト化すると(当然なんでしょうが)、「<」や「>」がコード化(&gt; や &lt;)されてしまいます。


●質問者: P-mako
●カテゴリ:インターネット ウェブ制作
✍キーワード:DOM GT LT PHP オブジェクト
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● pahoo
●60ポイント ベストアンサー

PHPのDOM操作について質問です」で回答しましたが、DOM に投入するテキストは構造化されていなければなりません。createTextNode や createElement の引数は構造化されていないテキストなので、タグ文字がエスケープされてしまうのです。


PHP5 で読み込める構造化テキストは HTML, XML の2種類なので、汎用性のある XML にしてから読み込むようにしてみました。(勝手に div タグを付加しています)

(PHP4だと DOM の動きが少し違うので気をつけてください)

<?php
mb_internal_encoding('UTF-8');

$sour =<<< EOT
texttexttexttexttext<img src="aaa.png" class="hoge" /><img src="bbb.png" class="foo" />texttexttexttexttext
EOT;

//XMLにする
$sour = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<div>" . $sour . "</div>";

$doc = new DOMDocument();
$doc->loadXML($sour);
echo $doc->saveXML($doc);
?>
◎質問者からの返答

ありがとうございます!

意図した処理を実現できました。すごく助かりました。

関連質問


●質問をもっと探す●



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