電子書籍の厳選無料作品が豊富!

ずっと悩んでなかなか解決できません。特定タグを子要素を含め取得したいのですが...
例えば以下のタグがあるとして

<div id="1">a<div id="2">b<div id="3">cc</div>b</div>a</div>


特定タグを子要素を含め取得して、それを配列に格納。配列の中は

[0] <div id="1">a<div id="2">b<div id="3">cc</div>b</div>a</div>
[1] <div id="2">b<div id="3">cc</div>b</div>
[2] <div id="3">cc</div>

このような配列の結果がでる動作方法はどうやればいいのでしょうか?

正規表現を使ってやろうとしてますが、自分のレベルでは難しくてできません。

よろしくお願いします。

A 回答 (2件)

<?php


$s = '<div id="1">a<div id="2">b<div id="3">cc</div>b</div>a</div>';
while(preg_match('/<(\w+)[^>]*>(.*)<\/\1>/', $s, $m)) {
$result[] = $m[0];
$s = $m[2];
}
var_dump($result);
?>

こんな感じでどうでしょう。
正規表現一発じゃないですが。
    • good
    • 0
この回答へのお礼

masa6272さんありがとうございました
助かりました

お礼日時:2011/08/11 09:55

xpathを使うと簡単にできます。

使い方は参考URLを見て下さい。
ただしphp-xmlが必要です。レンタルサーバで入ってなければ使えません。

ちなみにそういうのをDOM操作(あるいはDOM解析)と言いまして、正規表現でも出来ないことないけど汎用的ではありませんのでxpathのようにDOM操作に適したライブラリや環境を使うと良いでしょう。

PHPに拘らなければJavascriptのjQueryもお勧め。

あと、ID値に数値のみだと何かと面倒なので頭にアルファベットを付けるなりしたほうが良いと思います。

参考URL:http://logic.moo.jp/memo.php/archive/723
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
問題は無事解決できました。

お礼日時:2011/08/11 09:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!