2012-03-21 4 views
0

htmlparser.Parser Н3 в, У меня есть фрагмент кода HTML (смотри ниже), и мне нужно, чтобы получить содержание там куча этих контейнера divs с unqiue id в моем файле. Я могу получить divs и их внутренний html просто отлично. Я не могу понять , как получить Что между H3 тегиJava - org.htmlparser.Parser, нужно получить, Что между

этот фрагмент кода работает для дивы, но не h3: если находит h3 с правильным ID, я просто не могу понять, как получить innerHTML или что между тегами.

спасибо за любую помощь

parser = new Parser(); 
    parser.setInputHTML(inHTML); 
    parser.setEncoding("UTF-8"); 
    lstNodes = parser.extractAllNodesThatMatch( new AndFilter(new TagNameFilter("h3"), 
                new HasAttributeFilter("id", "h3_"+num))); 

Это находит его, но не возвращает данные между h3-х

<div class="container" id="container_2"> 
     <h3 id="h3_2">Adding a few</h3>  
     <div class="maindiv" id="div_2"> 
      ...new articles in here jus tto flesh it out. 
     </div><!--end of div_2--> 
    </div> 
+0

Я закончил создание собственного TAG класс H3Tag расширяет CompositeTag – randy

ответ

1

я в конечном итоге создать мой собственный TAG

class H3Tag extends CompositeTag 
1

You» re почти там. Вы можете отправить его в HeadingTag вручную и использовать getStringText() для получения текста между тегами.

NodeList nodes = parser.extractAllNodesThatMatch(new AndFilter(new TagNameFilter("h3"), 
    new HasAttributeFilter("id", "h3_"+num))); 
SimpleNodeIterator nodeIterator = nodes.elements(); 
while (nodeIterator.hasMoreNodes()) { 
    Node node = nodeIterator.nextNode(); 
    HeadingTag tag = (HeadingTag)node; 
    System.out.println(tag.getStringText()); 
}