$div->get_parent_node(); // Sadly, there's no such function.
Tenga en cuenta que se puede extender SimpleXML para que así sea. Por ejemplo:
class my_xml extends SimpleXMLElement
{
public function get_parent_node()
{
return current($this->xpath('parent::*'));
}
}
Y ahora todo lo que tiene que hacer es modificar el código que se utiliza para crear su SimpleXMLElement en el primer lugar:
$foo = new SimpleXMLElement('<foo/>');
// becomes
$foo = new my_xml('<foo/>');
$foo = simplexml_load_string('<foo/>');
// becomes
$foo = simplexml_load_string('<foo/>', 'my_xml');
$foo = simplexml_load_file('foo.xml');
// becomes
$foo = simplexml_load_file('foo.xml', 'my_xml');
La mejor parte es que SimpleXML volverá automáticamente y de forma transparente my_xml
objetos de este documento, por lo que no tiene que cambiar nada más, lo que hace que su método de conexión en cadena get_parent_node()
:
// returns $grandchild's parent's parent
$grandchild->get_parent_node()->get_parent_node();
Will este método ** siempre ** devuelve uno de los padres? Me estoy dando cuenta de que devuelve una matriz. – mrClean