Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HtmlCleaner在XPathr生成的某些XPath上失败_Java_Html_Xpath_Htmlcleaner - Fatal编程技术网

Java HtmlCleaner在XPathr生成的某些XPath上失败

Java HtmlCleaner在XPathr生成的某些XPath上失败,java,html,xpath,htmlcleaner,Java,Html,Xpath,Htmlcleaner,我正在使用HtmlCleaner2.1库对XPather插件生成的XPath与html进行比较,以从中获取内容。但有时候,HtmlCleaner无法计算xpath 对于e.x。 http://www.megaoutdoors.co.uk/norwegen-army-shirt-zipped-roll-top-collar-278-p.asp 对于产品名称,XPather给出的xpath是//body/div[11]/div[6]/div[2]/form/div[1]/h1 但当我使用HtmlCl

我正在使用HtmlCleaner2.1库对XPather插件生成的XPath与html进行比较,以从中获取内容。但有时候,HtmlCleaner无法计算xpath

对于e.x。 http://www.megaoutdoors.co.uk/norwegen-army-shirt-zipped-roll-top-collar-278-p.asp

对于产品名称,XPather给出的xpath是//body/div[11]/div[6]/div[2]/form/div[1]/h1 但当我使用HtmlCleaner评估它时,它失败了

我们怎样才能克服这个问题。当htmlcleaner清理页面时,页面结构是否会改变

谢谢
吉坦德拉

页面结构是否会随着时间而改变 htmlcleaner会清理它吗

根据上的介绍示例,HTMLCleaner当然可以在清理时更改页面的结构。在该示例中,它添加html和body元素,并将h1元素移出表

为什么不在页面上运行HTMLCleaner并查看其输出?然后,您就可以知道结构是否发生了变化以及如何发生了变化

有没有什么办法可以避免呢 换句话说,保持DOM由 HtmlCleaner尽可能靠近 由浏览器构建的DOM

您可以通过指定一个修改的标记信息集来实现这一点,该信息集不同于。这显然是配置DOM的“更正”的原因。(如果使用的是命令行界面,请参阅以了解如何使用它。)


或者如果你能推荐另一个 html解析器,其DOM非常接近 通过浏览器访问DOM,以便 由XPather插件生成的将失败 很少

我会尝试看看它对DOM有什么影响。它是一个被广泛使用的、成熟的程序,用于整理废弃的HTML

页面结构是否会随着时间而改变 htmlcleaner会清理它吗

根据上的介绍示例,HTMLCleaner当然可以在清理时更改页面的结构。在该示例中,它添加html和body元素,并将h1元素移出表

为什么不在页面上运行HTMLCleaner并查看其输出?然后,您就可以知道结构是否发生了变化以及如何发生了变化

有没有什么办法可以避免呢 换句话说,保持DOM由 HtmlCleaner尽可能靠近 由浏览器构建的DOM

您可以通过指定一个修改的标记信息集来实现这一点,该信息集不同于。这显然是配置DOM的“更正”的原因。(如果使用的是命令行界面,请参阅以了解如何使用它。)


或者如果你能推荐另一个 html解析器,其DOM非常接近 通过浏览器访问DOM,以便 由XPather插件生成的将失败 很少


我会尝试看看它对DOM有什么影响。它是一个被广泛使用且成熟的程序,用于整理废弃的HTML。

@Jitendra:一般来说,对于声称XHTML验证是一种格式不正确的XML的文档来说,这不是一个好的设计选择。它以什么方式失败?(例如,错误消息、获取错误数据、未获取数据…@Alejandro,这些网站不是我们的,但我们有权删除它们。因此,我们无论如何都必须将它们刮去。@LarsH,它失败的原因是,在计算上述xpath时,它给出了0个节点。@Jitendra:还要注意,由浏览器生成的DOM可能不同于由其他解析器生成的DOM(匿名元素、强制TBODY、邻接文本节点等)@Jitendra:一般来说,对于声称XHTML验证是一种格式不正确的XML的文档来说,这不是一个好的设计选择。它以什么方式失败?(例如,错误消息、获取错误数据、未获取数据…@Alejandro,这些网站不是我们的,但我们有权删除它们。因此,我们无论如何都必须将它们刮去。@LarsH,它失败的原因是,在计算上述xpath时,它给出了0个节点。@Jitendra:还要注意,由浏览器构建的DOM可能不同于由其他解析器(匿名元素、强制TBODY、邻接文本节点等)构建的DOM。Sry,问题的框架不是很好。我意识到页面结构发生了变化。有没有办法避免这种情况,或者换句话说,让HtmlCleaner生成的DOM尽可能接近浏览器生成的DOM。或者,如果您可以建议另一个html解析器,它的DOM非常接近浏览器生成的DOM,那么XPather插件生成的xpath很少会失败。@Jitendra,我更新了我的答案以回应这些评论。thnx Larsh,我肯定会尝试一下Html Tidy.Sry的JTidy java版本,这个问题的框架不是很好。我意识到页面结构发生了变化。有没有办法避免这种情况,或者换句话说,让HtmlCleaner生成的DOM尽可能接近浏览器生成的DOM。或者,如果您可以建议另一个html解析器,它的DOM非常接近浏览器生成的DOM,那么XPather插件生成的xpath很少会失败。@Jitendra,我更新了我的答案以回应这些评论。thnx Larsh,我一定会尝试JTidy java版本的Html Tidy。