IHtmlObject接口有无必要

Coordinator
Sep 2, 2010 at 4:46 PM

在现有的Jumony体系中,IHtmlAttribute和IHtmlNode是两个相互独立的接口,他们没有一个共同的基接口IHtmlObject。但它们有一些共用的方法和属性,例如Remove方法、将来可能在IHtmlAttribute增加的RawHtml和RawObject属性。

由于CSS选择器不支持选择Attribute,所以这两种对象出现在同一个列表的概率很低,且没有针对公共接口IHtmlObject的需求和扩展。所以没有设计IHtmlObject。

大家认为呢?

Sep 7, 2010 at 3:33 AM

"由于CSS选择器不支持选择Attribute"

#id    .class 也算根据attribute的选择吧?只是比较特殊的两种?   

:)

 

Coordinator
Oct 6, 2010 at 3:27 AM

CSS选择器的结果不支持Attribute,只能是Element,Attribute只能作为判定条件,这与XPath不同,也是CSS选择器和XPath的显著区别。

简单的说CSS选择器的结果总是一个Element的集合,而不能是Attribute或是TextNode、Comment,但XPath却可以选择这些DOM对象。

这就使得,如果用CSS选择器,几乎不可能在实际应用中出现一个集合,包含Element和Attribute(如果用XPath或者XQuery语法,就极有可能出现,这种要命的特性也使得XPath或XQuery相当麻烦)