为了提高性能,我想执行getElementsByTagName(“td”)而不用搜索整个文档。有没有办法缩小搜索这些元素的范围?这是我的代码:
$ie.Document.getElementsByTagName("td") | ? {($_.className -match 'NodeDocument')
问题是返回结果要花费10分钟以上的时间,我想缩小搜索范围,以使搜索速度更快并且不会返回不需要的元素。
例如,我只想在下面的图像中搜索突出显示的元素,而不是在下面的文件夹中搜索。有没有一种方法可以指定仅在“常规”文件夹中显示?
任何和所有帮助表示赞赏。谢谢。
感谢您的答复,我将尝试实现XPath。对于它的值(value),这里是HTML的屏幕截图。 #1是“常规”文件夹的元素。 #2是文件夹中的第一个文档元素。
更新:尝试了Frodo在Chrome检查器的$ conventional文件夹中调用.getElementsByTagName()的方法。这是结果的屏幕截图:
最佳答案
如何首先定位容器节点并在其中进行搜索?那将限制您到ex。 5个td
-节点,需要通过where-object
过滤,而不是像现在这样的1000+个节点。
$conventional = $ie.Document.getElementById('OurLibrary_LibTocUC$LandingPanel$toc1$ExpertTree1_nl_23')
$documents = $conventional.getElementsByTagName("td") | ? { $_.className -match 'NodeDocument' }
关于html - 在页面上查找元素而不搜索整个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36800837/