使用getElementsByTagName时在条件注释中包含标记

时间:2013-03-22 15:42:05

标签: php domdocument

我想使用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 conditional comments

谢谢everso!

1 个答案:

答案 0 :(得分:0)

评论是评论,因此在DOM中生成script元素。没有元素==无需选择。

如果您不喜欢其他线程的解决方案,那么您可以在创建DOM对象之前尝试使用正则表达式剪切注释。但如果更可靠则要怀疑......遇到f.e.任何略有格式错误的HTML,可能会比你预期的更多(或更少)。