rrichards               Fri Sep 22 10:13:27 2006 UTC

  Added files:                 
    /php-src/ext/dom/tests      domelement.phpt 

  Modified files:              
    /php-src/ext/dom    element.c nodelist.c php_dom.c 
  Log:
  mark functionality unicode safe
  add test
  
http://cvs.php.net/viewvc.cgi/php-src/ext/dom/element.c?r1=1.48&r2=1.49&diff_format=u
Index: php-src/ext/dom/element.c
diff -u php-src/ext/dom/element.c:1.48 php-src/ext/dom/element.c:1.49
--- php-src/ext/dom/element.c:1.48      Fri Sep 15 07:43:59 2006
+++ php-src/ext/dom/element.c   Fri Sep 22 10:13:27 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: element.c,v 1.48 2006/09/15 07:43:59 tony2001 Exp $ */
+/* $Id: element.c,v 1.49 2006/09/22 10:13:27 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -58,7 +58,7 @@
        {NULL, NULL, NULL}
 };
 
-/* {{{ proto void DOMElement::__construct(string name, [string value], [string 
uri]); */
+/* {{{ proto void DOMElement::__construct(string name, [string value], [string 
uri]) U */
 PHP_METHOD(domelement, __construct)
 {
 
@@ -207,7 +207,7 @@
        return xmlHasNsProp(elem, name, NULL);
 }
 
-/* {{{ proto string dom_element_get_attribute(string name);
+/* {{{ proto string dom_element_get_attribute(string name) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-666EE0F9
 Since:
 */
@@ -245,7 +245,7 @@
 /* }}} end dom_element_get_attribute */
 
 
-/* {{{ proto void dom_element_set_attribute(string name, string value);
+/* {{{ proto void dom_element_set_attribute(string name, string value) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-F68F082
 Since: 
 */
@@ -290,7 +290,7 @@
 /* }}} end dom_element_set_attribute */
 
 
-/* {{{ proto void dom_element_remove_attribute(string name);
+/* {{{ proto void dom_element_remove_attribute(string name) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-6D6AC0F9
 Since:
 */
@@ -334,7 +334,7 @@
 /* }}} end dom_element_remove_attribute */
 
 
-/* {{{ proto DOMAttr dom_element_get_attribute_node(string name);
+/* {{{ proto DOMAttr dom_element_get_attribute_node(string name) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-217A91B8
 Since: 
 */
@@ -363,7 +363,7 @@
 /* }}} end dom_element_get_attribute_node */
 
 
-/* {{{ proto DOMAttr dom_element_set_attribute_node(DOMAttr newAttr);
+/* {{{ proto DOMAttr dom_element_set_attribute_node(DOMAttr newAttr) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-887236154
 Since: 
 */
@@ -426,7 +426,7 @@
 /* }}} end dom_element_set_attribute_node */
 
 
-/* {{{ proto DOMAttr dom_element_remove_attribute_node(DOMAttr oldAttr);
+/* {{{ proto DOMAttr dom_element_remove_attribute_node(DOMAttr oldAttr) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D589198
 Since: 
 */
@@ -464,7 +464,7 @@
 /* }}} end dom_element_remove_attribute_node */
 
 
-/* {{{ proto DOMNodeList dom_element_get_elements_by_tag_name(string name);
+/* {{{ proto DOMNodeList dom_element_get_elements_by_tag_name(string name) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1938918D
 Since: 
 */
@@ -491,7 +491,7 @@
 /* }}} end dom_element_get_elements_by_tag_name */
 
 
-/* {{{ proto string dom_element_get_attribute_ns(string namespaceURI, string 
localName);
+/* {{{ proto string dom_element_get_attribute_ns(string namespaceURI, string 
localName) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAttrNS
 Since: DOM Level 2
 */
@@ -568,7 +568,7 @@
        return(def);
 }
 
-/* {{{ proto void dom_element_set_attribute_ns(string namespaceURI, string 
qualifiedName, string value);
+/* {{{ proto void dom_element_set_attribute_ns(string namespaceURI, string 
qualifiedName, string value) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAttrNS
 Since: DOM Level 2
 */
@@ -679,7 +679,7 @@
 /* }}} end dom_element_set_attribute_ns */
 
 
-/* {{{ proto void dom_element_remove_attribute_ns(string namespaceURI, string 
localName);
+/* {{{ proto void dom_element_remove_attribute_ns(string namespaceURI, string 
localName) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElRemAtNS
 Since: DOM Level 2
 */
@@ -737,7 +737,7 @@
 /* }}} end dom_element_remove_attribute_ns */
 
 
-/* {{{ proto DOMAttr dom_element_get_attribute_node_ns(string namespaceURI, 
string localName);
+/* {{{ proto DOMAttr dom_element_get_attribute_node_ns(string namespaceURI, 
string localName) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAtNodeNS
 Since: DOM Level 2
 */
@@ -768,7 +768,7 @@
 /* }}} end dom_element_get_attribute_node_ns */
 
 
-/* {{{ proto DOMAttr dom_element_set_attribute_node_ns(DOMAttr newAttr);
+/* {{{ proto DOMAttr dom_element_set_attribute_node_ns(DOMAttr newAttr) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAtNodeNS
 Since: DOM Level 2
 */
@@ -839,7 +839,7 @@
 
 
 
-/* {{{ proto DOMNodeList dom_element_get_elements_by_tag_name_ns(string 
namespaceURI, string localName);
+/* {{{ proto DOMNodeList dom_element_get_elements_by_tag_name_ns(string 
namespaceURI, string localName) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-A6C90942
 Since: DOM Level 2
 */
@@ -868,7 +868,7 @@
 /* }}} end dom_element_get_elements_by_tag_name_ns */
 
 
-/* {{{ proto boolean dom_element_has_attribute(string name);
+/* {{{ proto boolean dom_element_has_attribute(string name) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttr
 Since: DOM Level 2
 */
@@ -897,7 +897,7 @@
 /* }}} end dom_element_has_attribute */
 
 
-/* {{{ proto boolean dom_element_has_attribute_ns(string namespaceURI, string 
localName);
+/* {{{ proto boolean dom_element_has_attribute_ns(string namespaceURI, string 
localName) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttrNS
 Since: DOM Level 2
 */
@@ -953,7 +953,7 @@
        }
 }
 
-/* {{{ proto void dom_element_set_id_attribute(string name, boolean isId);
+/* {{{ proto void dom_element_set_id_attribute(string name, boolean isId) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttr
 Since: DOM Level 3
 */
@@ -990,7 +990,7 @@
 /* }}} end dom_element_set_id_attribute */
 
 
-/* {{{ proto void dom_element_set_id_attribute_ns(string namespaceURI, string 
localName, boolean isId);
+/* {{{ proto void dom_element_set_id_attribute_ns(string namespaceURI, string 
localName, boolean isId) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNS
 Since: DOM Level 3
 */
@@ -1027,7 +1027,7 @@
 /* }}} end dom_element_set_id_attribute_ns */
 
 
-/* {{{ proto void dom_element_set_id_attribute_node(attr idAttr, boolean isId);
+/* {{{ proto void dom_element_set_id_attribute_node(attr idAttr, boolean isId) 
U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNode
 Since: DOM Level 3
 */
http://cvs.php.net/viewvc.cgi/php-src/ext/dom/nodelist.c?r1=1.22&r2=1.23&diff_format=u
Index: php-src/ext/dom/nodelist.c
diff -u php-src/ext/dom/nodelist.c:1.22 php-src/ext/dom/nodelist.c:1.23
--- php-src/ext/dom/nodelist.c:1.22     Sun Aug 13 15:03:19 2006
+++ php-src/ext/dom/nodelist.c  Fri Sep 22 10:13:27 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: nodelist.c,v 1.22 2006/08/13 15:03:19 iliaa Exp $ */
+/* $Id: nodelist.c,v 1.23 2006/09/22 10:13:27 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -93,7 +93,7 @@
 /* }}} */
 
 
-/* {{{ proto DOMNode dom_nodelist_item(int index);
+/* {{{ proto DOMNode dom_nodelist_item(int index) U
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-844377136
 Since: 
 */
http://cvs.php.net/viewvc.cgi/php-src/ext/dom/php_dom.c?r1=1.98&r2=1.99&diff_format=u
Index: php-src/ext/dom/php_dom.c
diff -u php-src/ext/dom/php_dom.c:1.98 php-src/ext/dom/php_dom.c:1.99
--- php-src/ext/dom/php_dom.c:1.98      Thu Sep 21 11:53:58 2006
+++ php-src/ext/dom/php_dom.c   Fri Sep 22 10:13:27 2006
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_dom.c,v 1.98 2006/09/21 11:53:58 rrichards Exp $ */
+/* $Id: php_dom.c,v 1.99 2006/09/22 10:13:27 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -414,7 +414,7 @@
        return nodep;   
 }
 
-/* {{{ proto somNode dom_import_simplexml(sxeobject node)
+/* {{{ proto somNode dom_import_simplexml(sxeobject node) U
    Get a simplexml_element object from dom to allow for processing */
 PHP_FUNCTION(dom_import_simplexml)
 {

http://cvs.php.net/viewvc.cgi/php-src/ext/dom/tests/domelement.phpt?view=markup&rev=1.1
Index: php-src/ext/dom/tests/domelement.phpt
+++ php-src/ext/dom/tests/domelement.phpt
--TEST--
Elements: DOMElement functionality
--SKIPIF--
<?php require_once('skipif.inc'); ?>
--FILE--
<?php
require_once("dom_test.inc");

$dom = new DOMDocument;
$dom->loadXML($xmlstr);
if(!$dom) {
  echo "Error while parsing the document\n";
  exit;
}

$node = $dom->documentElement;
echo "Tag Name: ".$node->tagName."\n";


$node->setAttribute('num', '1');
echo "Chapter: ".$node->getAttribute('num')."\n";
echo 'Attribute num exists?: '.($node->hasAttribute('num')?'Yes':'No')."\n";
$node->removeAttribute('num');
echo "Chapter: ".$node->getAttribute('num')."\n";
echo 'Attribute num exists?: '.($node->hasAttribute('num')?'Yes':'No')."\n";

echo "Language: ".$node->getAttribute('language')."\n";
$lang = $node->getAttributeNode('language');
$lang->nodeValue = 'en-US';
$node->setAttributeNode($lang);
echo "Language: ".$node->getAttribute('language')."\n";
$node->removeAttributeNode($lang);
echo "Language: ".$node->getAttribute('language')."\n";

echo "\n-- xml:lang --\n";
$node->setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:lang', 'en');
echo "Language: ".$node->getAttributeNS('http://www.w3.org/XML/1998/namespace', 
'lang')."\n";
echo 'Attribute xml:lang exists?: 
'.($node->hasAttributeNS('http://www.w3.org/XML/1998/namespace', 
'lang')?'Yes':'No')."\n";

$node->removeAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang');
echo "Language: ".$node->getAttributeNS('http://www.w3.org/XML/1998/namespace', 
'lang')."\n";
echo 'Attribute xml:lang exists?: 
'.($node->hasAttributeNS('http://www.w3.org/XML/1998/namespace', 
'lang')?'Yes':'No')."\n";

$lang = $dom->createAttributeNS('http://www.w3.org/XML/1998/namespace', 
'xml:lang');
$lang->nodeValue = 'en-GB';
$node->setAttributeNodeNS($lang);
unset($lang);
echo "Language: ".$node->getAttributeNS('http://www.w3.org/XML/1998/namespace', 
'lang')."\n";
$lang = $node->getAttributeNodeNS('http://www.w3.org/XML/1998/namespace', 
'lang');
echo "Language: ".$lang->value."\n";

echo "\n-- Elements --\n";
$rows = $node->getElementsByTagName('row');
echo "Row Count: ".$rows->length."\n";

$element_ns = new DOMElement('newns:myelement', 'default content', 
'urn::dummyns');
$node->appendChild($element_ns);
$element_ns = new DOMElement('newns2:myelement', 'second default content', 
'urn::dummyns');
$node->appendChild($element_ns);

$myelements = $node->getElementsByTagNameNS('urn::dummyns', 'myelement');
$mylen = $myelements->length;
echo "myelements Count: ".$mylen."\n";

echo "\n-- IDs --\n";
$node->setAttribute('idatt', 'n1');
$node->setIdAttribute('idatt', TRUE);

for ($x = 0; $x < $mylen; $x++) {
        $current = $myelements->item($x);
        $current->setAttributeNS('urn::dummyns', 'newns:idatt', 
'n'.($x+2))."\n";
        $current->setIdAttributeNS('urn::dummyns', 'idatt', TRUE);
}

echo 'Element Name: '.(($elem = 
$dom->getElementByID('n1'))?$elem->localName:'Not Found')."\n";
$idatt = $node->getAttributeNode('idatt');
$node->setIdAttributeNode($idatt, FALSE);
echo 'Element Name: '.(($elem = 
$dom->getElementByID('n1'))?$elem->localName:'Not Found')."\n";

echo 'Element Name: '.(($elem = 
$dom->getElementByID('n3'))?$elem->nodeName:'Not Found')."\n";
for ($x = 0; $x < $mylen; $x++) {
        $node = $myelements->item($x);
        $node->setIdAttributeNS('urn::dummyns', 'idatt', FALSE);
}
echo 'Element Name: '.(($elem = 
$dom->getElementByID('n3'))?$elem->nodeName:'Not Found')."\n";
?>
--EXPECT--

Tag Name: chapter
Chapter: 1
Attribute num exists?: Yes
Chapter: 
Attribute num exists?: No
Language: en
Language: en-US
Language: 

-- xml:lang --
Language: en
Attribute xml:lang exists?: Yes
Language: 
Attribute xml:lang exists?: No
Language: en-GB
Language: en-GB

-- Elements --
Row Count: 3
myelements Count: 2

-- IDs --
Element Name: chapter
Element Name: Not Found
Element Name: newns2:myelement
Element Name: Not Found

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to