0

我想使用 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 更改条件注释

谢谢你!

4

1 回答 1

0

注释就是注释,因此其中的内容不会scriptDOM 中生成元素。没有元素 == 没有选择。

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

于 2013-03-22T16:00:18.010 回答