我需要一个正则表达式从html文档中提取所有样式表(<link>
标签)。
目前我有preg_match_all('/<link([^>]*?)>/i',...
,正则表达式提取样式表......没关系。
但是,我需要排除IEs条件标签<!--[if IE...]>bla bla<![endif]-->
...
有关如何操作的提示吗?
答案 0 :(得分:1)
$dom = new DOMDocument;
$dom->loadHTMLFile('http://example.com');
$xpath = new DOMXPath($dom);
$stylesheets = $xpath->query('/html/head/link[@rel="stylesheet"]');
foreach ($stylesheets as $stylesheet) {
echo $dom->saveHtml($stylesheet);
}
这将只打印head元素中的样式表,不包括那些注释节点内的样式表。如果你需要进一步限制,例如通过media属性,那么只需将其作为另一个条件添加到Xpath查询中。
如果saveHTML不接受您的PHP版本中的节点,请参阅