Добрый вечер всем!
Я пытаюсь разобрать HTML-страницу на Java с помощью JDOM2, чтобы получить доступ к некоторой информации из нее.
Мой код выглядит так: (только что добавил пакеты для этого блока кода, их нет в моем реальном исходном коде)
//Here goes the reading of the site into my String "string" (using NekoHTML)
org.xml.sax.InputSource is = new InputSource();
is.setCharacterStream(new StringReader(string));
org.cyberneko.html.parsers.DOMParser parser = new DOMParser();
parser.parse(is);
org.jdom2.input.DOMBuilder builder = new DOMBuilder();
org.jdom2.Document doc = builder.build(parser.getDocument());
Это прекрасно работает для всего, кроме некоторых особых случаев: когда сайт содержит кавычки внутри элемента. Вот пример того, что я имею в виду:
<a href="LINK" title="Der "realismo mágico" und die Phantastische Literatur">Der "realismo mágico" und die Phantastische...</a>
Итак, после этого замечательного тега я получаю следующую трассировку ошибок:
SEVERE: org.jdom2.IllegalNameException: The name "literatur"" is not legal for JDOM/XML attributes: XML name 'literatur"' cannot contain the character """.
Итак, теперь мой вопрос: какие у меня есть варианты, чтобы позаботиться об этой ошибке? Может быть, есть функция в NekoHTML, которую я могу использовать для этого (используя «setFeature()»), или что-то в JDOM, которое я мог бы использовать?
Если нет: существуют ли другие библиотеки, подходящие для очистки веб-сайтов, которые могут принимать такие вещи, как кавычки внутри тега?
Спасибо за ваше время!
literatur"=""
что явно неверно. Он пытается сообщить JDOM, что имя атрибута (а не значение)literatur"
- person rolfl   schedule 10.07.2014