rrichards Wed Sep 10 11:20:35 2008 UTC
Added files:
/php-src/ext/simplexml/tests bug45553.phpt
Modified files:
/php-src/ext/simplexml simplexml.c
Log:
fix bug #45553 (Using XPath for attributes with a namespace does not work)
add test
http://cvs.php.net/viewvc.cgi/php-src/ext/simplexml/simplexml.c?r1=1.258&r2=1.259&diff_format=u
Index: php-src/ext/simplexml/simplexml.c
diff -u php-src/ext/simplexml/simplexml.c:1.258
php-src/ext/simplexml/simplexml.c:1.259
--- php-src/ext/simplexml/simplexml.c:1.258 Fri Aug 8 22:06:42 2008
+++ php-src/ext/simplexml/simplexml.c Wed Sep 10 11:20:35 2008
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: simplexml.c,v 1.258 2008/08/08 22:06:42 colder Exp $ */
+/* $Id: simplexml.c,v 1.259 2008/09/10 11:20:35 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -1287,7 +1287,7 @@
if (nodeptr->type == XML_TEXT_NODE) {
_node_as_zval(sxe, nodeptr->parent, value,
SXE_ITER_NONE, NULL, NULL, 0 TSRMLS_CC);
} else if (nodeptr->type == XML_ATTRIBUTE_NODE) {
- _node_as_zval(sxe, nodeptr->parent, value,
SXE_ITER_ATTRLIST, (char *)nodeptr->name, NULL, 0 TSRMLS_CC);
+ _node_as_zval(sxe, nodeptr->parent, value,
SXE_ITER_ATTRLIST, (char*)nodeptr->name, nodeptr->ns ? nodeptr->ns->href :
NULL, 0 TSRMLS_CC);
} else {
_node_as_zval(sxe, nodeptr, value,
SXE_ITER_NONE, NULL, NULL, 0 TSRMLS_CC);
}
@@ -2640,7 +2640,7 @@
{
php_info_print_table_start();
php_info_print_table_header(2, "Simplexml support", "enabled");
- php_info_print_table_row(2, "Revision", "$Revision: 1.258 $");
+ php_info_print_table_row(2, "Revision", "$Revision: 1.259 $");
php_info_print_table_row(2, "Schema support",
#ifdef LIBXML_SCHEMAS_ENABLED
"enabled");
http://cvs.php.net/viewvc.cgi/php-src/ext/simplexml/tests/bug45553.phpt?view=markup&rev=1.1
Index: php-src/ext/simplexml/tests/bug45553.phpt
+++ php-src/ext/simplexml/tests/bug45553.phpt
--TEST--
Bug #45553 (Using XPath to return values for attributes with a namespace does
not work)
--FILE--
<?php
$xml =<<<XML
<xml xmlns:a="http://a">
<data a:label="I am A" label="I am Nothing">test1</data>
<a:data a:label="I am a:A" label="I am a:Nothing">test2</a:data>
</xml>
XML;
$x = simplexml_load_string($xml);
$x->registerXPathNamespace("a", "http://a");
$atts = $x->xpath("/xml/data/@a:label");
echo $atts[0] . "\n";
$atts = $x->xpath("/xml/a:data");
echo $atts[0]->attributes() . "\n";
$atts = $x->xpath("/xml/a:data/@a:label");
echo $atts[0] . "\n";
$atts = $x->xpath("/xml/a:data/@label");
echo $atts[0] . "\n";
$atts = $x->xpath("/xml/data/@label");
echo $atts[0] . "\n";
?>
--EXPECTF--
I am A
I am a:Nothing
I am a:A
I am a:Nothing
I am Nothing
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php