• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ずっと悩んでます。特定タグを子要素を含め取得したい)

特定タグの子要素を含めて取得する方法について

このQ&Aのポイント
  • 特定タグの子要素を含めて取得する方法について悩んでいます。
  • 正規表現を使用して取得する方法を試みましたが、難しくてできません。
  • 質問文章のタグの構造に基づいて、特定のタグを含む子要素を配列に格納する方法について教えてください。

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

  • ベストアンサー
  • masa6272
  • ベストアンサー率66% (93/140)
回答No.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); ?> こんな感じでどうでしょう。 正規表現一発じゃないですが。

noname#256090
質問者

お礼

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

その他の回答 (1)

  • foreach
  • ベストアンサー率51% (43/84)
回答No.1

xpathを使うと簡単にできます。使い方は参考URLを見て下さい。 ただしphp-xmlが必要です。レンタルサーバで入ってなければ使えません。 ちなみにそういうのをDOM操作(あるいはDOM解析)と言いまして、正規表現でも出来ないことないけど汎用的ではありませんのでxpathのようにDOM操作に適したライブラリや環境を使うと良いでしょう。 PHPに拘らなければJavascriptのjQueryもお勧め。 あと、ID値に数値のみだと何かと面倒なので頭にアルファベットを付けるなりしたほうが良いと思います。

参考URL:
http://logic.moo.jp/memo.php/archive/723
noname#256090
質問者

お礼

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