Мне нужно разобрать HTML-файл для домашнего задания, и поэтому я не могу использовать Jsoup.
Я попытался просканировать файл, но не знаю, как сохранить то, что ищу.
Вот что у меня есть:
FileInputStream fis = new FileInputStream(filename);
InputStreamReader inStream = new InputStreamReader(fis);
BufferedReader reader = new BufferedReader(inStream);
String fileLine;
while((fileLine = reader.readLine()) != null){
String tag = fileLine.substring(fileLine.indexOf("<") + 1,fileLine.indexOf(">"))
}
Мне нужно найти информацию внутри тегов title>, но я не могу понять, как получить эту информацию, не получая теги, которые мне не нужны, или как обрабатывать случаи, когда теги отсутствуют.
Я хочу взять информацию из тега title и превратить ее в строку, которую я могу использовать.
String fileDataString = Files.readAllLines(Paths.get(fileName), Charset.forName("UTF-8")).stream().collect(Collectors.joining("\n"));
String title = StringUtils.substringBetween(fileDataString, "<title>", "</title>"));
Это должно работать, чтобы получить текст между <title> и </title>
Обновлено: Спасибо BlackPearl за предложение Stream<String>.collect(Collectors.joining("\n"));
Этот подход будет работать только в том случае, если открывающий и закрывающий теги заголовка находятся в одной строке.
Изменил его, чтобы он сначала читал весь файл. затем ищет теги заголовков и получает строку между ними
или лучше stream().collect(Collectors.joining("\n"))
Как выглядит настоящий html-файл? И как он форматируется? Нужно ли читать построчно? Публикация фактического html-файла может помочь.