簡體   English   中英

識別CSS選擇器字符串與XPath字符串

[英]Identify css selector string vs XPath string

我正在為html編寫一個小型查詢模塊(在js中),我想提供一個通用的query(selector)函數,該函數同時支持css選擇器和XPath選擇器作為字符串參數。

無論如何進行每種選擇,這里的問題都是如何確定給定的字符串是xpath還是css選擇器。 我們可以假設函數是這樣的:


function query(selector){
   selectorKind = identifySelectorKind(selector); // I want to know how to code this particular function

   if(selectorKind==="css") return queryCss(selector);
   if(selectorKind==="xPath") return queryXPath(selector); //Assume both functions exists and work
}

我的第一種方法(鑒於我對xPath查詢的了解有限)是通過檢查第一個字符是否為/來識別查詢類型(這里我假設所有相關的xPath查詢都以/開頭)

因此, identifySelectorKind會像這樣:

function identifySelectorKind(selector){
    if (selector[0] === "/") return "xPath";
    else return "css";
}

注意,我不需要驗證css和xpath選擇器,我只需要一種明確的方法來區分它們。 這種邏輯就足夠了嗎? (換句話說,所有xPath選擇器都以/開頭,而沒有css選擇器以相同的方式開頭嗎?),如果不是,是否有更好的方法或我可能想知道的一些注意事項?

不一定。 例如, *是有效的xpath和有效的css選擇器,但它與每個元素中的一組不同元素匹配。

如果您完全確定XPath選擇器將始終以/開頭,那么可以。 請注意,XPath選擇器不必以/開頭,但是如果您總是從根目錄中選擇,則可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM