Подсчёт тегов с помощью SAXParser

Я пытаюсь подсчитать количество тегов на html странице, но выводится такая ошибка:The markup in the document preceding the root element must be well-formed. Подскажите пожалуйста, как это можно исправить?

@SpringBootApplication 
@RestController

public class DemoApplication {

public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
}

@GetMapping("/CounttableWithSAX") 
public String counttables(@RequestParam(value = "url", defaultValue = "https://example.com") String url) throws ParserConfigurationException, SAXException {
        SAXParserFactory factory = SAXParserFactory.newInstance();
        int count = 0;
        try {
            SAXParser saxParser = factory.newSAXParser();
            System.out.println("teg table");
            CountElementHandlerSax countStaffHandler =
                    new CountElementHandlerSax("table");
            saxParser.parse(url, countStaffHandler);

            count = countStaffHandler.getCount();
            System.out.println("count = "+ count);
        } catch (ParserConfigurationException | SAXException | IOException e) {
            e.printStackTrace();
        }
        return String.format("Кол - во тегов " + count );
    }
}

//Класс счётчик

public class CountElementHandlerSax extends DefaultHandler {

    private final String elementName;
    private Integer count = 0;

    public String getElementName() {
        return elementName;
    }

    public Integer getCount() {
        return count;
    }

    public CountElementHandlerSax(String elementName) {
        this.elementName = elementName;
    }

    @Override
    public void startElement(String uri, String localName,
                             String qName, Attributes attributes)
            throws SAXException {
        System.out.println("qname = "+qName);
        if (qName.equalsIgnoreCase(getElementName())) {
            count++;
        }
    }

}

Ответы (0 шт):