PHP:DomElement->getAttribute
Posted
技术标签:
【中文标题】PHP:DomElement->getAttribute【英文标题】:PHP: DomElement->getAttribute 【发布时间】:2011-01-20 14:38:16 【问题描述】:如何获取元素的所有属性?就像下面的例子一样,我一次只能得到一个,我想拉出所有锚标签的属性。
$dom = new DOMDocument();
@$dom->loadhtml(http://www.example.com);
$a = $dom->getElementsByTagName("a");
echo $a->getAttribute('href');
谢谢!
【问题讨论】:
【参考方案1】:$length = $a->attributes->length;
$attrs = array();
for ($i = 0; $i < $length; ++$i)
$name = $a->attributes->item($i)->name;
$value = $a->getAttribute($name);
$attrs[$name] = $value;
print_r($attrs);
【讨论】:
【参考方案2】:受到西蒙回答的“启发”。我认为您可以取消getAttribute
电话,所以这里有一个没有它的解决方案:
$attrs = array();
for ($i = 0; $i < $a->attributes->length; ++$i)
$node = $a->attributes->item($i);
$attrs[$node->nodeName] = $node->nodeValue;
var_dump($attrs);
【讨论】:
【参考方案3】:$a = $dom->getElementsByTagName("a");
foreach($a as $element)
echo $element->getAttribute('href');
【讨论】:
如果我没看错问题,他想要所有元素的属性。不是所有元素的一种属性。【参考方案4】:$html = $data['html'];
if(!empty($html))
$doc = new DOMDocument();
$doc->loadHTML($html);
$doc->saveHTML();
$datadom = $doc->getElementsByTagName("input");
foreach($datadom as $element)
$class =$class." ".$element->getAttribute('class');
【讨论】:
以上是关于PHP:DomElement->getAttribute的主要内容,如果未能解决你的问题,请参考以下文章
如何获取 DOMElement 节点的 html 代码? [复制]
CloudFormation模板中如何同时使用Sub和GetAtt函数?
模块“domhandler”没有导出的成员“DomElement”。您的意思是改用“从“domhandler”导入 DomElement”吗?