@karvjorm,
Using this method is not exactly a good practice. Infact, I think it may be a bug.
Names beginning with "xml" are reserved (for namespaces in this case).
setAttribute() should return false in this case I think, but I suppose it doesn't.
Still, the right way to do it is with createElementNS().
It lets you specify the namespace when creating the element node.
So the equivalent to yours ($html added to allow word wrapping) is:
$dom = new DomDocument('1.0','iso-8859-15');
$html = $dom->createElementNS('http://www.w3.org/1999/xhtml', 'html');
$ht_ml = $dom->appendChild($html);
$ht_ml->setAttribute('xml:lang','fi');
$ht_ml->setAttribute('lang','fi');
DOMElement->setAttribute()
(No version information available, might be only in CVS)
DOMElement->setAttribute() — Adds new attribute
Popis
class DOMElement {bool setAttribute ( string $name, string $value )
}
Sets an attribute with name name to the given value. If the attribute does not exist, it will be created.
Seznam parametrů
- name
The name of the attribute.
- value
The value of the attribute.
Návratové hodnoty
Vrací TRUE při úspěchu, FALSE při selhání.
Errors/Exceptions
- DOM_NO_MODIFICATION_ALLOWED_ERR
Raised if the node is readonly.
Příklady
Příklad 407. Setting an attribute
<?php
$doc = new DOMDocument("1.0");
$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);
$newnode->setAttribute("align", "left");
?>
Viz také
| DOMElement->hasAttribute() |
| DOMElement->getAttribute() |
| DOMElement->removeAttribute() |
DOMElement->setAttribute()
Vasil Rangelov
31-Jul-2007 04:44
31-Jul-2007 04:44
karvjorm at users.sourceforge.net
02-Mar-2007 03:05
02-Mar-2007 03:05
$dom = new DomDocument('1.0','iso-8859-15');
$ht_ml = $dom->appendChild($dom->createElement('html'));
$ht_ml->setAttribute('xmlns','http://www.w3.org/1999/xhtml');
$ht_ml->setAttribute('xml:lang','fi');
$ht_ml->setAttribute('lang','fi');
Result:
<?xml version="1.0" encoding="iso-8859-15"?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi" lang="fi">
