2017-02-26 5 views
0

Ich habe ein HTML-Code wie dieserjsoup den gesamten Text zwischen Tag außer für eine Art von Subtag Extrahieren

<p> 
    <i>One</i> - <i>Two</i> - ... <i>N</i> - 
    <tag1>hey</tag1> <tag2>there!</tag2> how are you? 
</p> 

ich hey there! how are you? haben möchte.

Das ist, was ich bisher zu verwaltenden:

Elements p = document.select("p"); 
List<Node> nodes = p.get(0).childNodes(); 
for (Node node : nodes){ 
    if (node.nodeName() != "i"){ 
     if (node.nodeName() != "#text"){ 
      System.out.print(((Element) node).text()); 
     } else { 
      System.out.print(node); 
     } 
    } 
} 

Und das ist, was ich habe:

- - hey there! how are you? 

Danach habe ich geplant .replace() verwenden der "loszuwerden - ".

Ich fragte mich, ob es einen besseren Weg gab?

+0

Von Bedeutung in der bearbeiteten Version ist, dass _all_ der auszuschließenden Textelemente ein "" -Tag vorausgeht. Ist das korrekt? –

+0

Die auszuschließenden Textelemente sind alle " smth -" Muster :) – NoSmile

+0

Es zeigt nur "dort!". Das ist okay, ich bleibe bei meiner Methode, bis es eine Verbesserung gibt :) – NoSmile

Antwort

0

Wenn das Layout sicher gegeben ist, dann könnte diese Variante für Sie geeignet sein. Testen der <i> Elemente und Elemente, die ihnen folgen.

+0

Das Layout ist nicht genau so: Ein - kann wiederholt werden. (0, 1, 2 oder 3 mal) Ich werde meine vorherige Post folglich ändern. Aber meine Frage war mehr, wenn es irgendwelche Methoden von jSoup gab, die es direkt tun konnten? – NoSmile

Verwandte Themen