当使用getElementsByTagName时,在条件注释中包含标签


Including tags in conditional comments when using getElementsByTagName

我想使用getElementsByTagName在我的HTML中找到所有脚本标签,然后使用src属性。

我让它在下面的代码中工作得很好,但是它忽略了条件注释中的标记。

foreach ($dom->getElementsByTagName('script') as $node) 
{
    if ($node->hasAttribute('src'))
    {
        echo $node->getAttribute('src');
    } 
}

条件注释标签被忽略的例子:

<!--[if lt IE 9]>
<script src="js/html5shiv.js"></script>
<![endif]-->

有没有办法把这个也包括在搜索中?我找到了下面的线程,但是循环遍历所有子元素的建议并不完全理想。还有其他的解吗?

PHP DomDocument alter条件注释

谢谢everso !

注释就是注释,所以里面的不会在DOM中生成script元素。No element == nothing to select.

如果您不喜欢其他线程的解决方案,那么您可以尝试在创建DOM对象之前用正则表达式删除注释。但是,如果怀疑这样更可靠的话,那么遇到任何稍微有缺陷的HTML,可能会比您期望的更多(或更少)。