Как добавить новые теги в JTidy?

Я пытаюсь использовать jTidy для извлечения данных из (реального мира) HTML. Но jTidy не анализирует пользовательские теги.

<html>
  <body>
    <myCustomTag>some text</myCustomTag>
    <anotherCustom>more text</anotherCustom>
  </body>
</html>

Я не могу получить тексты между пользовательскими тегами. Я должен использовать jTidy, потому что я буду использовать xpath.

Я пробовал HTMLCleaner, но он не поддерживает полные функции xpath.


person MuhammetK    schedule 23.01.2012    source источник
comment
См. также stackoverflow.com/questions/30374232/   -  person Pino    schedule 03.07.2017


Ответы (2)


Вы также можете установить свойства с помощью объекта свойств Java, например:

import java.util.Properties;
Properties oProps = new Properties();
oProps.setProperty("new-blocklevel-tags", "header hgroup article footer nav");

Tidy tidy = new Tidy();
tidy.setConfigurationFromProps(oProps);

Это избавит вас от необходимости создавать и загружать файл конфигурации.

person Mark Howard    schedule 09.09.2013

Ознакомьтесь с http://tidy.sourceforge.net/docs/quickref.html#new-blocklevel-tags

Быстро и грязно создать файл, я назвал его jTidyTags и вызвать:

Tidy tidy = new Tidy();
tidy.setConfigurationFromFile("jTidyTags");

После этого он выдаст предупреждение о том, что он не соответствует требованиям W3C, но кого это волнует. Это позволит вам проанализировать файл.

Примером jTidyTags для вас может быть:

new-blocklevel-tags: myCustomTag anotherCustom

Надеюсь это поможет!

person Ethan    schedule 16.03.2012
comment
Привет, Итан, спасибо за ответ. Первое, что я попробовал, это теги new-blocklevel-tags, но это не работает. - person MuhammetK; 13.07.2012
comment
Пробовали ли вы добавлять другие новые теги? В данный момент передо мной нет моего кода. Я посмотрю, когда доберусь до работы. - person Ethan; 22.07.2012
comment
Вот точная строка, которую я использую в своем коде: new-blocklevel-tags: barcode box line - person Ethan; 23.07.2012