$div->get_parent_node(); // Sadly, there's no such function.
pamiętać, że można przedłużyć SimpleXML, aby tak było. Na przykład:
class my_xml extends SimpleXMLElement
{
public function get_parent_node()
{
return current($this->xpath('parent::*'));
}
}
A teraz wszystko co musisz zrobić, to zmodyfikować kod używany do tworzenia SimpleXMLElement w pierwszej kolejności:
$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');
Najlepsze jest to, że SimpleXML automatycznie i przejrzysty powrotu my_xml
obiekty dla tego dokumentu, więc nie trzeba zmieniać niczego innego, co sprawia, że get_parent_node()
metody chainable:
// returns $grandchild's parent's parent
$grandchild->get_parent_node()->get_parent_node();
będzie to metoda ** zawsze ** zwraca jednego rodzica? Zauważam, że zwraca tablicę. – mrClean