2015-12-27 80 views
0

我有一個要求使用類標題「Offered By」(該類對於所有人來說)使用類標題「使用類」(這可以根據數據進行更改) Xpath的。我嘗試過各種xpath編碼,但無法獲得我想要的結果。我真的很想找人幫忙。使用xpath獲取div類標題內容文本

<div class="meta-info"> 
<div class="title"> Offered By</div> 
<div class="content">ELECTRONIC ARTS</div> </div> 
+0

嗨,我沒有太多關於Xpath的知識,我試過// div [@ class ='content'],但它不能滿足我的要求。 –

回答

1

這是一個可能的XPath表達式,以與開始,然後可以簡化或根據需要添加更多標準(XPath的格式化更可讀的):

//div[ 
    @class='meta-info' 
     and 
    div[@class='title' and normalize-space()='Offered By'] 
]/div[@class='content'] 

解釋:

  • //div[@class='meta-info' and ... :找到div元素,其中class屬性值等於"meta-info"和...

  • div[@class='title' and normalize-space()='Offered By']]:......有子元素div其中class屬性值等於"title"和內容等於"Offered By"

  • /div[@class='content']:從這樣div(在<div class="meta-info">予以明確),返回子元素div其中class屬性值等於"content"

0

使用上Mozilla例子:

var xpath = document.evaluate("//div[@class='content']", document, null, XPathResult.STRING_TYPE, null); 
 

 
document.write('The text found is: "' + xpath.stringValue + '".'); 
 
console.log(xpath);
<div class="meta-info"> 
 
    <div class="title"> Offered By</div> 
 
    <div class="content">ELECTRONIC ARTS</div> 
 
</div>

順便說一句,我認爲document.querySelectordocument.querySelectorAll是更方便在這種情況下:

var content = document.querySelector('.meta-info .content').innerText; 
 

 
document.write('The text found is: "' + content + '".'); 
 
console.log(content);
<div class="meta-info"> 
 
    <div class="title"> Offered By</div> 
 
    <div class="content">ELECTRONIC ARTS</div> 
 
</div>

+0

我想以這種格式回答// div [@ class ='content'] –

+0

好的,那麼就用那個吧。你可以自由使用你最喜歡的那個。 – GolezTrol