2010-06-27 37 views
1

如果您正在解析html或xml(使用python)并查找特定标记,那么可能会降低整个文档的大小或使整个文档大写,从而导致比较结果的准确性。 xml和html文档中有多少百分比(估计)在其标记中使用了大写字母?匹配html或xml标签时,是否应该担心套管?

+0

效率如何?图书馆应该为你处理。此外,你可以编写自己的,非常高效的扫描仪:) – 2010-06-27 16:34:08

+1

对不起,我的水晶球现在没有了。因此,抓取整个网络并自己估计> :) – 2010-06-27 16:36:00

回答

1

我认为你对性能过于关注。如果你在讨论任意网页,其中90%是HTML,而不是XHTML,所以你应该做不区分大小写的比较。降低字符串速度非常快,并且应该小于解析器总时间的1%。如果您不确定,请仔细分析已经全部小写的文档,使用和不使用小写转换。

与其余的解析相比,即使是lower-of-only的纯Python实现也可以忽略不计,但它比这更好--CPython在C代码中实现了lower(),所以它确实尽可能快。请记住,不成熟的优化是一切罪恶的根源。先让你的程序正确,然后让它快速。

5

XML(和XHTML)标签区分大小写......所以<this><tHis>将是不同的元素。

但是HTML(非XHTML)标签的很多(粗略估计)是随机的。

2

只有在您使用XHTML时区分大小写,而HTML不是这样,您可以忽略大小写区别。在担心检查案例之前,先测试文档类型。

+1

当然,网站充满了doctype表示XHTML的网站,但如果它没有作为XML提供,并且在根节点上缺少名称空间,则任何分析器都跳转到quirksmode因为作者可能将代码从20个其他页面一起浸出,所以忽略这些情况。 – Zorf 2010-06-28 00:59:16

相关问题