©
本文档使用 PHP中文网手册 发布
(PHP 5, PHP 7)
DOMElement::setAttribute — Adds new attribute
$name
, string $value
)
Sets an attribute with name name
to the given
value. If the attribute does not exist, it will be created.
name
The name of the attribute.
value
The value of the attribute.
The new DOMAttr or FALSE
if an error occurred.
DOM_NO_MODIFICATION_ALLOWED_ERR
Raised if the node is readonly.
Example #1 Setting an attribute
<?php
$doc = new DOMDocument ( "1.0" );
$node = $doc -> createElement ( "para" );
$newnode = $doc -> appendChild ( $node );
$newnode -> setAttribute ( "align" , "left" );
?>
[#1] lehal2@hotmail [2013-06-06 09:44:35]
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();
[#2] Rakesh Verma - rakeshnsony at gmail dot com [2010-11-10 23:27:51]
<?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;
?>
[#3] address at gmail dot com [2008-07-03 07:25:11]
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("/
$newnode
)$exclusive
[, bool $with_comments
[, array $xpath
[, array $ns_prefixes
]]]] )$uri
[, bool $exclusive
[, bool $with_comments
[, array $xpath
[, array $ns_prefixes
]]]] )$deep
] )$newnode
[, DOMNode $refnode
] )$namespaceURI
)$node
)$feature
, string $version
)$prefix
)$namespaceURI
)$oldnode
)$newnode
, DOMNode $oldnode
)
The public identifier associated with the entity if specified, and
NULL
otherwise.
The system identifier associated with the entity if specified, and
NULL
otherwise. This may be an absolute URI or not.
For unparsed entities, the name of the notation for the entity. For
parsed entities, this is NULL
.
An attribute specifying the encoding used for this entity at the
time of parsing, when it is an external parsed entity. This is
NULL
if it an entity from the internal subset or if it is not
known.
An attribute specifying, as part of the text declaration, the
encoding of this entity, when it is an external parsed entity. This
is NULL
otherwise.
An attribute specifying, as part of the text declaration, the
version number of this entity, when it is an external parsed
entity. This is NULL
otherwise.