1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
--TEST--
Renaming an attribute node to a name that already exists
--EXTENSIONS--
dom
--FILE--
<?php
$dom = DOM\XMLDocument::createFromString(<<<XML
<!DOCTYPE root [
<!ELEMENT implied-attribute ANY>
<!ATTLIST implied-attribute hello CDATA #FIXED "world">
]>
<root a="b" c="d" xmlns:ns1="urn:a" ns1:foo="bar">
<implied-attribute my-attr="x"/>
<implied-attribute my-attr="x"/>
</root>
XML, LIBXML_DTDATTR);
$root = $dom->documentElement;
try {
$root->attributes[0]->rename(NULL, 'c');
} catch (DOMException $e) {
echo $e->getMessage(), "\n";
}
try {
$root->attributes[0]->rename(NULL, 'c');
} catch (DOMException $e) {
echo $e->getMessage(), "\n";
}
try {
$root->attributes[1]->rename(NULL, 'a');
} catch (DOMException $e) {
echo $e->getMessage(), "\n";
}
try {
$root->attributes[1]->rename('urn:a', 'foo');
} catch (DOMException $e) {
echo $e->getMessage(), "\n";
}
try {
$root->attributes[3]->rename('', 'a');
} catch (DOMException $e) {
echo $e->getMessage(), "\n";
}
try {
$root->firstElementChild->attributes[0]->rename(NULL, 'hello');
} catch (DOMException $e) {
echo $e->getMessage(), "\n";
}
try {
$root->firstElementChild->attributes[1]->rename(NULL, 'my-attr');
} catch (DOMException $e) {
echo $e->getMessage(), "\n";
}
// This is here to validate that nothing actually changed
echo $dom->saveXML();
?>
--EXPECT--
An attribute with the given name in the given namespace already exists
An attribute with the given name in the given namespace already exists
An attribute with the given name in the given namespace already exists
An attribute with the given name in the given namespace already exists
An attribute with the given name in the given namespace already exists
An attribute with the given name in the given namespace already exists
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ELEMENT implied-attribute ANY>
<!ATTLIST implied-attribute hello CDATA #FIXED "world">
]>
<root xmlns:ns1="urn:a" a="b" c="d" ns1:foo="bar">
<implied-attribute my-attr="x" hello="world"/>
<implied-attribute my-attr="x" hello="world"/>
</root>
|