Исключение синтаксического анализа HTML в MD - PullRequest
0 голосов
/ 23 декабря 2018

Я пытаюсь создать простой java-конвертер из html в md в java, нашел ответ html в md , однако он выглядит довольно устаревшим и больше не работает, bc из приведенной ниже трассировки стека, есть ли шанс конвертировать html в md в 2018 году с любым из языков на основе jvm?

Оба файла (html, xsl) правильно отформатированы как UTF-8 и не содержат никаких причудливых символов

org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.

вот код, который я настраиваю

public static void main(String[] args) throws TransformerException {
    final String md = convert(htmlLocation);
}

public static String convert(final String htmlLocation) throws TransformerException {

    if (html == null) {
        return "";
    }

    final File xslFile = new File(xslLocation);
    final Source htmlSource = new StreamSource(new StringReader(htmlLocation));
    final Source xslSource = new StreamSource(xslFile);

    final TransformerFactory transformerFactory = TransformerFactory.newInstance();
    final Transformer transformer = transformerFactory.newTransformer(xslSource);

    final StringWriter result = new StringWriter();
    transformer.transform(htmlSource, new StreamResult(result));

    return result.toString();
}

содержание html

<html>
    <h1>Lorem ipsum dolor</h1>
    <h2>Lorem ipsum dolor</h2>
    <p>Lorem ipsum dolor</p>
</html>

Для тех, кто сталкивается с той же проблемой, пожалуйста, обратитесь к проекту, который делает преобразование без xslt

https://github.com/pnikosis/jHTML2Md

1 Ответ

0 голосов
/ 23 декабря 2018
org.xml.sax.SAXParseException; 
lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.

Это может быть связано со скрытым символом в начале файла.Возможно, файл, который вы пытаетесь преобразовать, содержит данные в UTF-8 BOM ( Byte Order Mark ).Вы можете легко преобразовать такое содержимое файла в UTF-8 и затем запустить свою программу.Для Mac вы можете использовать эту команду для удаления спецификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...