0

我使用 xpath 来更改标题中样式表href的样式表。<link>

但它根本不起作用。

$html=file_get_contents('http://stackoverflow.com');
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$css_links = $xpath->evaluate("//link[@type='text/css']");
for ($i = 0; $i < $css_links->length; $i++) 
{
    $csslink = $css_links->item($i);
    $oldurl = $csslink->getAttribute('href');
    $newURL='http://example.com/aaaa.css';
    $csslink->removeAttribute('href');
    $csslink->setAttribute('href', $newURL);
}
echo $html;
4

1 回答 1

1

您正在使用@$doc->loadHTML(html);而不是@$doc->loadHTML($html);(注意$),否则它可以工作。

也使用echo $doc->SaveHtml()代替 echoing $html

这里的工作示例。

您也可以替换for($i...)foreach因为DOMNodeList implements Traversable

foreach ($css_links as $csslink) 
{
    $oldurl = $csslink->getAttribute('href');
于 2013-09-21T20:38:04.787 回答