PHP の SimpleXML で要素の親にアクセスするには? 質問する

PHP の SimpleXML で要素の親にアクセスするには? 質問する

SimpleXML オブジェクトのセットを反復処理していますが、各オブジェクトの親ノードにアクセスする方法がわかりません。必要なのは次のようになります。

$divs = simplexml->xpath("//div");
foreach ($divs as $div)
{
   $parent_div = $div->get_parent_node(); // Sadly, there's no such function.
}

どうやら、これを行うにはかなり簡単な方法があるようです。

ベストアンサー1

これを取得するには、簡単な XPath クエリを実行できます。

$parent_div = $div->xpath("parent::*");

これは Simplexml であり、要素ノードと属性ノードのみを持ち、親ノードは要素のみで属性にはなれないため、省略された構文を使用できます。

$parent_div = $div->xpath("..");

(経由:一般的な Xpath チート - SimpleXML タイプのチートシート (2013 年 2 月、hakre 著)

おすすめ記事