2011-05-07 89 views
2

我正在使用java从网页中获取标题文本。如何从java中的任何网页获取标题文本

我使用标记名如下必须获取图像从网页:

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()); 

这是工作,但我想从获取网页(www.yahoo.com)的标题标签使用相同的代码 为以上。我已经提到getElementsByTagName(“title”);但它不起作用。 请帮助我,如何做到这一点使用jtidy解析器如上。

回答

2

注意NodeList索引从0开始(我看到你的“int i = 1;”)http://download.oracle.com/javase/1.4.2/docs/api/org/w3c/dom/NodeList.html。此外,您可以“属性(即”src“)的”getNodeValue()“,但不是元素http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html。在这种情况下,你可以使用“getTextContent()”,因为我不相信“标题”标签有子元素。所以:

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

或者:

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

感谢马特,它帮助我。 – DJ31 2011-05-07 11:31:29

+0

不客气。 – Matt 2011-05-07 12:15:59

0

嫣不能告诉你,除非你张贴实际上tyring用拿到冠军的代码,但是这显然是行不通的:

list.add(img.item(i).getAttributes().getNamedItem("src").getNodeValue()); 

因为title元素没有一个src属性。

1

您可以轻松地使用XPath获取一个HTML页面的标题:

/html/head/title/text() 

您可以Dom4J轻松实现这一点,我觉得在JTidy为好。

相关问题