DOMElement::setAttribute

(PHP 5, PHP 7)

DOMElement::setAttributeУстанавливает значение атрибута

Описание

public DOMAttr DOMElement::setAttribute ( string $name , string $value )

Устанавливает значение атрибута с именем name. Если атрибут не существует, то он будет создан.

Список параметров

name

Имя атрибута.

value

Значение атрибута.

Возвращаемые значения

Новый объект класса DOMAttr или FALSE в случае ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

Примеры

Пример #1 Установка значения атрибута

<?php
$doc 
= new DOMDocument("1.0");
$node $doc->createElement("para");
$newnode $doc->appendChild($node);
$newnode->setAttribute("align""left");
?>

Смотрите также

Коментарии

$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">
2007-03-02 17:05:09
http://php5.kiev.ua/manual/ru/domelement.setattribute.html
Автор:
@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');
2007-07-31 19:44:40
http://php5.kiev.ua/manual/ru/domelement.setattribute.html
If wanting to set an attribute of an element with unique id of "1"

<?php
$dom 
= new DomDocument();
$dom->load('test.xml');
$xp = new DomXPath($dom);
$res $xp->query("//*[@id = '1']");
$res->item(0)->setAttribute('title','2');
$dom->save('test.xml');
?>
2008-07-03 10:25:11
http://php5.kiev.ua/manual/ru/domelement.setattribute.html
<?php
//Store your html into $html variable.
$html="
<html>
<head>
<title>Untitled Document</title>
</head>

<body>
    <a href='http://example.com'>Example</a><br>
    <a href='http://google.com'>Google</a><br>
   
    <a href='http://www.yahoo.com'>Yahoo</a><br>
</body>

</html>"
;

$dom = new DOMDocument();
$dom->loadHTML($html);

//Evaluate Anchor tag in HTML
$xpath = new DOMXPath($dom);
$hrefs $xpath->evaluate("/html/body//a");

for (
$i 0$i $hrefs->length$i++) {
       
$href $hrefs->item($i);
       
$url $href->getAttribute('href');

       
//remove and set target attribute       
       
$href->removeAttribute('target');
       
$href->setAttribute("target""_blank");

       
$newURL=$url."/newurl";

       
//remove and set href attribute       
       
$href->removeAttribute('href');
       
$href->setAttribute("href"$newURL);
}

// save html
$html=$dom->saveHTML();

echo 
$html;

?>
2010-11-11 01:27:51
http://php5.kiev.ua/manual/ru/domelement.setattribute.html
Автор:
The use of Dom to first remove and then add the width and height to the first img tag from the text.I hope it help you to save your time
<?php
$html 
'

            <img src="http://www.example.com/images/header.jpg" width="898" height="223" style="border-bottom:5px solid #cccccc;"/>
        <img src="http://www.example.com/images/header2.jpg" width="898" height="223" style="border-bottom:5px solid #cccccc;"/>
        '
;

$doc DOMDocument::loadHTML($html);
$c =0;
foreach(
$doc->getElementsByTagName('img') as $image){
    if (
$c>0) continue;
    foreach(array(
'width''height') as $attribute_to_remove){
        echo 
$attribute_to_remove;
        if(
$image->hasAttribute($attribute_to_remove)){
           
$image->removeAttribute($attribute_to_remove);

        }
        if(
$attribute_to_remove=='height'){
            if(!
$image->hasAttribute($attribute_to_remove)){
               
$image->setAttribute($attribute_to_remove,'220');

            }}
        if(
$attribute_to_remove=='width'){
      if(!
$image->hasAttribute($attribute_to_remove)){
           
$image->setAttribute($attribute_to_remove,'700');

        }}
       
$c $c+1;
    }
}
echo 
$doc->saveHTML();
2013-06-06 12:44:35
http://php5.kiev.ua/manual/ru/domelement.setattribute.html
Solution to render HTML 5 tags with attributes with/without value:
<?php
$dom 
= new DOMImplementation();
$doc $dom->createDocument(null'html'$dom->createDocumentType('html'));

$tag $doc->appendChild($doc->createElement('input'));
$tag->setAttribute('type''text');
$tag->setAttribute('disabled''');

echo 
$doc->saveHTML($tag); // <input type="text" disabled="">

$doc->normalize(); // normalize attributes
echo $doc->saveHTML($tag); // <input type="text" disabled>
?>
2021-12-02 20:17:16
http://php5.kiev.ua/manual/ru/domelement.setattribute.html

    Поддержать сайт на родительском проекте КГБ