如何将复杂的xpath转换为css

时间:2013-09-05 12:38:49

标签: css xpath

我有一个复杂的html结构。 CSS新手。想要将我的xpath更改为css,因为在IE中可能会有一些性能影响

by firebug的Xpath:.//*[@id='T_I:3']/span/a

我很好地说://div[@id='Overview']/descendant::*[@id='T_I:3']/span/a

现在我需要相应的CSS。有可能吗?

1 个答案:

答案 0 :(得分:1)

首先,我不认为你的“微调”能做到最好。元素id在文档中应该是唯一的,因此通常由现代浏览器缓存(这意味着id查找是即时的)。您可以使用id()函数来帮助XPath引擎。

因此,XPath表达式为:id('T_I:3')/span/a(是的,这是一个有效的XPath 1.0表达式)。

无论如何,要将其转换为CSS,您可以使用:#T_I:3 > span > a

您转换的“微调”表达式为:div#Overview #T_I:3 > span > a,但严重的是,您只需要选择一个id

The hashtag # is an id selector.

The space () is a descendant combinator.

The > sign is a child combinator.


编辑基于FrédericHamidi的好评:

  

我认为#T_I:3无效(冒号会与...混淆)   开始伪类)。你必须找到逃脱它的方法。

事实证明你还需要逃避下划线。为此,请使用此SO问题中提到的技术:Handling a colon in an element ID in a CSS selector

最终的CSS选择器将是:

#T\5FI\3A3 > span > a