diff options
author | Christian Stocker <chregu@php.net> | 2002-08-14 09:07:34 +0000 |
---|---|---|
committer | Christian Stocker <chregu@php.net> | 2002-08-14 09:07:34 +0000 |
commit | 280cb97fef773bbeabbc0a0ed29263a9fa9a1552 (patch) | |
tree | 588756319862065383c500722d0d6b2566461cfa /ext/domxml/php_domxml.c | |
parent | 323765cc17ad43f1659e2f244f6a9d5ebf4bd384 (diff) | |
download | php-git-280cb97fef773bbeabbc0a0ed29263a9fa9a1552.tar.gz |
fix for bug #18196
@ - DomElement->node_name() takes optional boolean argument for retrieving
@ - full qualified name (ie namespace prefix) (chregu)
Diffstat (limited to 'ext/domxml/php_domxml.c')
-rw-r--r-- | ext/domxml/php_domxml.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/ext/domxml/php_domxml.c b/ext/domxml/php_domxml.c index e389123407..e8f85004d6 100644 --- a/ext/domxml/php_domxml.c +++ b/ext/domxml/php_domxml.c @@ -1884,15 +1884,23 @@ PHP_FUNCTION(domxml_node_name) { zval *id; xmlNode *n; + int fullQName = 0; const char *str = NULL; - DOMXML_GET_THIS_OBJ(n, id, le_domxmlnodep); - - DOMXML_NO_ARGS(); + DOMXML_PARAM_ONE(n, id, le_domxmlnodep,"|b",&fullQName); switch (Z_TYPE_P(n)) { case XML_ELEMENT_NODE: - str = n->name; + if (fullQName && n->ns && n->ns->prefix) { + /* there is maybe a better way of doing this...*/ + char *tmpstr; + tmpstr = (char*) emalloc((strlen(n->ns->prefix)+strlen(n->name)) * sizeof(char)) ; + sprintf(tmpstr,"%s:%s", (char*) n->ns->prefix, (char*) n->name); + str = strdup(tmpstr); + efree(tmpstr); + } else { + str = n->name; + } break; case XML_TEXT_NODE: |