Advertisement
Guest User

Untitled

a guest
Oct 26th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.69 KB | None | 0 0
  1. package com.mytest.polya;
  2.  
  3. import org.jsoup.Jsoup;
  4. import org.jsoup.nodes.Document;
  5. import org.jsoup.nodes.Node;
  6. import org.jsoup.nodes.TextNode;
  7. import org.jsoup.select.NodeVisitor;
  8. import org.junit.Test;
  9.  
  10. import static org.junit.Assert.assertEquals;
  11.  
  12. public class NodeVisitorTest {
  13.  
  14.     @Test
  15.     public void traverse() {
  16.         Document doc = Jsoup.parse("" +
  17.                 "<body> \n" +
  18.                 "        <div>\n" +
  19.                 "            Этот текст в диве.\n" +
  20.                 "            <p> Этот текст в параграфе. </p> \n" +
  21.                 "            <span>Этот текст в спане.</span>\n" +
  22.                 "            <p> <span>Этот текст в параграфе-спане.</span></p>\n" +
  23.                 "            Этот текст тоже в диве.\n" +
  24.                 "        </div>\n" +
  25.                 "        Этот текст в боди.\n" +
  26.                 "    </body>");
  27.         final StringBuilder accum = new StringBuilder();
  28.         doc.select("div").first().traverse(new NodeVisitor() {
  29.             public void head(Node node, int depth) {
  30.                 if (node instanceof TextNode) {
  31.                     accum.append(((TextNode) node).text());
  32.                 } else {
  33.                     accum.append("<" + node.nodeName() + ">");
  34.                 }
  35.  
  36.             }
  37.  
  38.             public void tail(Node node, int depth) {
  39.                 if (!(node instanceof TextNode)) {
  40.                     accum.append("</" + node.nodeName() + ">");
  41.                 }
  42.  
  43.             }
  44.         });
  45.         assertEquals("<div><p><#text></#text></p></div>", accum.toString());
  46.     }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement