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
|
--TEST--
Attribute entity expansion in a legacy document
--EXTENSIONS--
dom
--FILE--
<?php
$doc = new DOMDocument;
$elt = $doc->createElement('elt');
$doc->appendChild($elt);
$elt->setAttribute('a','&');
print $doc->saveXml($elt) . "\n";
$attr = $elt->getAttributeNode('a');
$attr->value = '&';
print "$attr->value\n";
print $doc->saveXml($elt) . "\n";
$attr->removeChild($attr->firstChild);
print $doc->saveXml($elt) . "\n";
// Note: since libxml2 commit aca16fb3d45e0b2c45364ffc1cea8eb4abaca87d this no longer explicitly warns. This seems intentional.
@$attr->nodeValue = '&';
print "$attr->nodeValue\n";
print $doc->saveXml($elt) . "\n";
$attr->nodeValue = '&';
print "$attr->nodeValue\n";
print $doc->saveXml($elt) . "\n";
$elt->removeAttributeNode($attr);
$elt->setAttributeNS('http://www.w3.org/2000/svg', 'svg:id','&');
print $doc->saveXml($elt) . "\n";
$attr = $elt->getAttributeNodeNS('http://www.w3.org/2000/svg', 'id');
$attr->value = '<&';
print "$attr->value\n";
print $doc->saveXml($elt) . "\n";
?>
--EXPECTF--
<elt a="&"/>
&
<elt a="&"/>
<elt a=""/>
<elt a=""/>
&
<elt a="&"/>
<elt xmlns:svg="http://www.w3.org/2000/svg" svg:id="&amp;"/>
<&
<elt xmlns:svg="http://www.w3.org/2000/svg" svg:id="<&"/>
|