javajtidy

how to take title text from any web page in java


I am using java to fetch the title text from web page.

I have fetched image from web page using Tag name as follows:

    int i=1; 
InputStream in=new URL("www.yahoo.com").openStream();
org.w3c.dom.Document doc= new Tidy().parseDOM(in, null);   
    NodeList img=doc.getElementsByTagName("img");
ArrayList<String> list=new ArrayList<String>();                   
    list.add(img.item(i).getAttributes().getNamedItem("src").getNodeValue());

It is working,But I want to fetch title tag from web page(www.yahoo.com) using same code as above.I have mentioned getElementsByTagName("title"); but it is not working. Please help me,how to do that using jtidy parser as above.


Solution

  • Watch that the NodeList index starts at 0 (i see your "int i = 1;") http://download.oracle.com/javase/1.4.2/docs/api/org/w3c/dom/NodeList.html.

    Also, you can "getNodeValue()" of an Attribute (ie "src"), but not of an Element http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html. In this case you can use "getTextContent()", because I dont believe the "title" tag has child Elements. So:

    String titleText = doc.getElementsByTagName("title").item(0).getTextContent(); 
    

    Or:

    String titleText = doc.getElementsByTagName("title").item(0).getFirstChild().getNodeValue();