Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:6996 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 20748 invoked by uid 1010); 12 Jan 2004 15:26:36 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 20720 invoked by uid 1007); 12 Jan 2004 15:26:35 -0000 Message-ID: <20040112152620.20216.qmail@pb1.pair.com> To: internals@lists.php.net Date: Mon, 12 Jan 2004 17:28:05 +0200 Lines: 63 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 X-Posted-By: 212.110.132.221 Subject: How to add new functions to SimpleXML extention From: alex_mailbox53@yahoo.com ("Alexander") Hi! I'm just playing with simplexml and wonder if two new functions of the simplexml_element object would be usefull: getName() and getParent(). I'm interesting in adding them to the extention, if possible. What should I do for this? (I also think that it may be in FAQ, but I did not find that info with my search skills). Basically, this is my first experiment with PHP Extensions. I may be wrong with my code, but tests pass is ok ----------------------- Thank you for time, Alexander Netkachev http://devlink.narod.ru/ Code for getName function: /* {{{ getName() */ SXE_METHOD(getName) { char *name; xmlNodePtr node; // current node php_sxe_object *sxe = php_sxe_fetch_object(getThis() TSRMLS_CC); GET_NODE(sxe, node); if (node && (name = (char *)(node->name))) { RETURN_STRING(name, 1); } RETURN_EMPTY_STRING(); } /* }}} */ /* {{{ getParent() */ SXE_METHOD(getParent) { xmlNodePtr node; // current node xmlNodePtr pNode; // node->parent php_sxe_object *sxe = php_sxe_fetch_object(getThis() TSRMLS_CC); GET_NODE(sxe, node); if (node && (pNode = node->parent)) { _node_as_zval(sxe, pNode, return_value TSRMLS_CC); return; } RETURN_NULL(); } /* }}} */ File: ext/simplexml/tests/019.phpt --TEST-- SimpleXML: Test getParent() and getName() functions --SKIPIF-- --FILE-- '); var_dump(trim($doc->body->getParent()->getName())); echo '--done--'; ?> --EXPECT-- string(4) "html" --done--