summaryrefslogtreecommitdiff
path: root/ext/domxml/php_domxml.c
diff options
context:
space:
mode:
authorChristian Stocker <chregu@php.net>2002-08-14 09:07:34 +0000
committerChristian Stocker <chregu@php.net>2002-08-14 09:07:34 +0000
commit280cb97fef773bbeabbc0a0ed29263a9fa9a1552 (patch)
tree588756319862065383c500722d0d6b2566461cfa /ext/domxml/php_domxml.c
parent323765cc17ad43f1659e2f244f6a9d5ebf4bd384 (diff)
downloadphp-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.c16
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: