2016-05-18 9 views
-1

ich dieses einfache Beispiel habe mein Problem zu veranschaulichen: dies ist eine HTML-Seite test.html:bekommen spezifisches Kind mit jsoup

<body> 

     <div class="partA"> 
      part a 
     </div> 
     <script></script> 
     <div class="partB"> 
      part b 
     </div> 
     <div class="partC"> 
      part c 
     </div> 
     <div class="parthh"> 
      <div> 
       part b 2 
      </div> 

      <div class="partD"> 
       part d 
      </div> 

     </div> 
    </body> 

und dies ist mein Code java:

public static void main(String[] args) throws IOException { 


    Document doc = Jsoup.parse(new File("C:\\Users\\HC\\Desktop\\dataset\\test.html"), "UTF-8"); 

    Elements el = doc.select("body > div:eq(1)"); 

    System.out.println(el.toString()); 

} 

die Das Problem, dass das Tag 'script' oder andere Tags vor meinem "diserd" -Tag stehen (das zweite div in diesem Fall), verhindert die gute Ausführung des Codes und das zurückgegebene Ergebnis ist leer.

bitte wie kann ich ignorieren diese undiservierten Tags und erhalten Sie die spezifische.

+0

Erzeuge ich Sie richtig, dass Sie div class = "partB" brauchen? Probieren Sie dieses 'Element current = doc.select (" div.partB "). First(); String text = current.text(); ' – lenach87

+0

nein ich will es nicht anrufen von seinem classeName – kivok94

Antwort

1

Ist der Selektor body > div:nth-of-type(2) nicht das, wonach Sie suchen?

+0

es funktioniert jetzt, indem nth-of-type :), vielen Dank – kivok94

1

Sie können alle script Tags aus Ihrem HTML entfernen:

Document doc = Jsoup.parse(new File("C:\\Users\\HC\\Desktop\\dataset\\test.html"), "UTF-8"); 
Elements el = doc.select("script"); 
for (Element e : el) { 
    e.remove(); 
} 
el = doc.select("body > div:eq(1)"); 
System.out.println(el.toString()); 

jetzt Ihrem Dokument wird nicht den Tag enthält, und Sie werden um die gewünschte Ausgabe zu erhalten.

+0

ok ich werde den Block des Körpers von jedem Skript oder CSS-Code reinigen:/dann werde ich es erneut versuchen. Danke TDG – kivok94