SimpleXMLで親要素を取得する

$node->parent();

とかで取れると思ったら無理だった。

$parents = $node->xpath('parent::node()');
$parent  = $parents[0];

みたいにxpathで取るのが妥当なやり方?

こういう、配列を返す関数・メソッドのn番目の要素を直接取るのってPHPでは書けないんですかね。

$parent = ($node->xpath('parent::node()')[0];

なんて書き方だとパースエラーになる。

$parent = array_shift($node->xpath('parent::node()');

して無駄にshiftするのも嬉しくない。MacBookで100万回回して2秒の差だったし、この場合は配列も1つしか要素入ってこないから気にするほどではないけど、そこまでして一行で書きたいかというと微妙なところ。おとなしく二行で書くのがいいのかな。