如何使用PHP DomDocument获取规范值?

时间:2012-07-08 12:16:56

标签: php dom

<link rel='canonical' href='http://test.com/asdfsdf/sdf/' />

我需要使用Dom获取规范的href值。我该怎么做?

1 个答案:

答案 0 :(得分:4)

有多种方法可以做到这一点。

使用XML:

<?php

$html = "<link rel='canonical' href='http://test.com/asdfsdf/sdf/' />";

$xml  = simplexml_load_string($html);
$attr = $xml->attributes();
print_r($attr);

?>

输出:

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [rel] => canonical
            [href] => http://test.com/asdfsdf/sdf/
        )

)

或者,使用Dom:

<?php

$html = "<link rel='canonical' href='http://test.com/asdfsdf/sdf/' />";

$dom = new DOMDocument;
$dom->loadHTML($html);
$nodes = $dom->getElementsByTagName('link');
foreach ($nodes as $node)
{
    if ($node->getAttribute('rel') === 'canonical')
    {
        echo($node->getAttribute('href'));
    }
}

?>

输出:

http://test.com/asdfsdf/sdf/

在这两个示例中,如果您要解析整个HTML文件,则需要更多代码,但它们展示了您需要的大部分结构。

this answerthe documentation on Dom修改的代码。