2014-06-08 54 views
0

標籤我要分析此網址:http://online.wsj.com/public/page/news-wall-street-heard.html?dsk=y刪除<textarea>從書籍DOC

Document jDoc = Jsoup.connect(url1).get(); 
System.out.println(jDoc1.text()); 

但第二線(上圖)的輸出是內部的textarea +其他標籤的所有文本標籤。輸出如下:

.. 
.. 
<ul class=""> 
<li><a data-time="1dy" data-frequency="1mi" class="mdm_time">1 Day</a></li> 
<li><a data-time="5dy" data-frequency="15mi" class="mdm_time">5 Days</a></li> 
.. 
.. 

所有的html都被打印(內部是什麼)和其他標籤的文本。我想要從Doc中刪除這個標籤,或者想要將它作爲元素,以便我可以將其從我的手中刪除。

希望,我能夠清楚地解釋一切。請幫我解決這個問題。

編輯:

按照建議,我這樣做:

System.out.println(jDoc1.select("textarea")); 

,輸出來的是:

textarea id="wsj_autocomplete_template" style="display:none"> 

    &lt;div&gt; 
      &lt;div class=&quot;acHeadline hidden&quot; &gt; 
      &lt;/div&gt; 
      &lt;div class=&quot;dropdownContainerClass&quot;&gt; 
       &lt;div class=&quot;suggestionblock hidden&quot; templateType=&quot;C1&quot;&gt;  

.... 
... 
.. 

當然,這是選擇textarea的,但不能解析內部元素。可能是由於& lt而不是<標籤。有沒有解決方法?

回答

0

。或者,如果您想要獲取textarea的內容,請使用doc.select("textarea").text()。請注意,我使用的是text()方法,而不是toString()html()方法。這給出了確切的文本而不是html轉義碼。

同樣,如果你想操縱這個網站,你可以像Document textareaDoc = Jsoup.parseBodyFragment(doc.select("textarea").text());

例再次解析它

import java.io.IOException; 

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 


public class WSJParser { 

    public static void main(String[] args) { 
     String url = "http://online.wsj.com/public/page/news-wall-street-heard.html?dsk=y"; 
     try { 
      Document doc = Jsoup.connect(url).get(); 
      //doc.select("textarea").remove(); // Removes the entire text area tag 
      Document textareaDoc = Jsoup.parseBodyFragment(doc.select("textarea").text()); 
      System.out.println(textareaDoc); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

} 
+0

謝謝,我想刪除它,所以刪除使用.remove()。 – akshayb

0

如果我理解正確的話,你想要什麼。如果要刪除整個文本區域標籤使用doc.select("textarea").remove();這是

Elements textareas = Jsoup.connect(url1).get().select("textarea"); 

for (Element textarea : textareas) { 
    Elements elements = textarea.select("*"); 
    for (Element element : elements) { 
     System.out.println(element.ownText()); 
    } 
} 
+0

感謝。我根據您的建議編輯問題。請參閱。 – akshayb