2013-04-09 2 views
1

Я использую JTidy и xpath в разборе HTML, но на данный момент разбор текста вызывает у меня небольшую проблему, потому что он может включать в себя тег b внутри, поэтому я не хочу перебирать его но просто удалите теги «b» после загрузки html.Удалить желаемый тег из html с помощью JTidy

Как удалить теги из документа DOM.

Document doc = tidy.parseDOM(url.openStream(), System.out); 

, например псевдокода для него - doc.removeTag('<b>');

Возможно ли это?

+0

здесь приведен список настраиваемых параметров http://tidy.sourceforge.net/docs/quickref.html, что позволяет заменить Ь с сильными, но это варианты. Можем ли мы переопределить некоторые из них? –

ответ

0

Вы отметили это как «jdom», но ваш документ является документом DOM (а не JDOM).

Из corse, если он был JDOM, вы можете заменить Элементы своим контентом, используя относительно простое сканирование документа. Или вы можете использовать пользовательский SAXHandler, чтобы пропустить добавление элемента в первую очередь.

Используя JDOM, вы можете, например, сделать что-то вроде:

for (Iterator <Content> it = document.getDescendants(); it.hasNext();) { 
    Content c = it.next(); 
    if ((c instanceof Element) && "b".equals(((Element)c).getName())) { 
    Element e = (Element)c; 
    it.remove(); 
    for (Content k : e.getContent()) { 
     k.detach(); 
     it.add(k); 
    } 
    } 
}