2012-05-02 15 views
0

xPathをCSSセレクタに変換する手助けがありますか?私が変更したいコードは、次のとおりです。xPathをCSSセレクタに変換する方法

String selector = ""; 
    if(hasBaseCls()){ 
     selector += " and contains(@class, '" + getBaseCls() + "')"; 
    } 
    if(hasCls()){ 
     selector += " and contains(@class, '" + getCls() + "')"; 
    } 
    if (hasName()) { 
     selector += " and contains(@name,'" + getName() + "')"; 
    } 
    if(hasStyle()){ 
     selector += " and contains(@style ,'" + getStyle() + "')"; 
    } 

    if(hasVisibleOption()){ 
     selector += " and count(ancestor-or-self::*[contains(@style, 'display: none')]) = 0"; 
    } 

CSSセレクタを使用するようにフレームワークを変更しようとしていますが、これはコード内の典型的な構成です。私はこの1つ上の貴重な答えが表示された場合、私は私が管理することができると思うあなたはそれの一部を変更することができ、私の他の構造

+1

のようなものになります'ancestor-or-self :: * [contains(@style、 'display:none')]'のCSSには相当しません。 – BoltClock

+0

私はこの答えが出てくるのを恐れていました:(他の人たちはどうですか?または祖先か自己の回避策ですか? – vali83

答えて

0

の最も:

String selector = ""; 
if(hasBaseCls()){ 
    selector += "." + getBaseCls(); 
} 
if(hasCls()){ 
    selector += "." + getCls(); 
} 
if (hasName()) { 
    selector += "[name*='" + getName() + "']"; 
} 
if(hasStyle()){ 
    selector += "[style*='" + getStyle() + "']"; 
} 

ので、セレクタがありa.class1.class2[name*='somename'][style*='somestyle']

+0

ありがとう、これは私のCSSセレクターと私の人生をよりよく理解してくれます。表現 – vali83

関連する問題