Хорошо - если вы используете java, но в большинстве языков есть эквивалент - вы можете использовать SAX-парсер (например, TagSoup, который преобразует любой html в xhtml), и в вашем обработчике вы можете сделать:
public class MyHandler extends org.xml.sax.helpers.DefaultHandler {
boolean readTitle = false;
StringBuilder title = new StringBuilder();
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {
if(localName.equals("title") {
readTitle = true;
}
}
public void endElement(String uri, String localName, String name)
throws SAXException {
if(localName.equals("title") {
readTitle = false;
}
}
public void characters(char[] ch, int start, int length)
throws SAXException {
if(readTitle) title.append(new String(ch, start, length));
}
}
и вы используете его в вашем парсере (пример с tagoup):
org.ccil.cowan.tagsoup.Parser parser = new Parser();
MyHandler handler = new MyHander();
parser.setContentHandler(handler);
parser.parse(an input stream to your html file);
return handler.title.toString();