2015-09-27 103 views
2

我正在尋找使用xPath提取一部分字符串。xPath幫助 - 選擇一個字符串中的特定單詞

完全字符串 -

信息性(非小說類),1303個字,級別S(三級)

HTML代碼:

<div class="bookInfo"> 
    Informational (nonfiction), 
1,303 words, 
Level S (Grade 3) 
</div> 

我期待只是提取這些字符串的字數,即 - 1,303 words在這種情況下爲

此字符串的XPATH看起來像問題

//*[@id="contentarea-inner"]/div[3]/div[2]/div 

頁面 - https://www.readinga-z.com/books/leveled-books/book/?id=820

請我如何可以修改的XPath,以提取只能從頁的單詞數建議。我有幾千頁,從

感謝

回答

1

基本上你需要xpath和正則表達式:

  1. 通過xPath獲取div節點的文本(參見Shubham Jain的代碼)
  2. 將正則表達式應用於文本;例如。這個:\s[,\d]+(?= words)。請參閱文本節點上的regex's work
+0

非常感謝,Igor –

+1

@pb_ng,不客氣。 –

1

您可以在Java中使用分割功能

使用的代碼實現同樣得到這個信息: -

String text= driver.findElement(By.xpath("//*[@id='contentarea-inner']/div[3]/div[2]/div")).getText(); 
String count1 = text.split(",")[1]; 
String count2 = text.split(",")[2]; 
String count = count1 + count2; 
System.out.println(count); 

請打電話給我,如果仍然面臨任何問題:)

+0

謝謝Subham - 請讓我知道我可以得到該字符串上沒有任何單詞的xPath。我需要在應用程序上使用xPath來提取no。這些網頁的文字。我無法爲此使用Java代碼。謝謝 –

+0

@ShubhamJain,因爲你使用'test.split(',')'結果可能是錯誤的,因爲文本是這樣的......, 1,303字,'在數字裏面用逗號! –

+0

@IgorSavinkin - >是的,你是絕對正確的...... thanx指出..我已經做出相應的改變 –

相關問題