예제 #1
0
 @Test
 public void testGetChildText() {
   Document doc = Jsoup.parse("<p>Hello <b>there</b> now");
   Element p = doc.select("p").first();
   assertEquals("Hello there now", p.text());
   assertEquals("Hello now", p.ownText());
 }
예제 #2
0
 @Test
 public void testPrependText() {
   Document doc = Jsoup.parse("<div id=1><p>Hello</p></div>");
   Element div = doc.getElementById("1");
   div.prependText("there & now > ");
   assertEquals("there & now > Hello", div.text());
   assertEquals("there &amp; now &gt; <p>Hello</p>", TextUtil.stripNewlines(div.html()));
 }
예제 #3
0
  @Test
  public void elementIsNotASiblingOfItself() {
    Document doc = Jsoup.parse("<div><p>One<p>Two<p>Three</div>");
    Element p2 = doc.select("p").get(1);

    assertEquals("Two", p2.text());
    Elements els = p2.siblingElements();
    assertEquals(2, els.size());
    assertEquals("<p>One</p>", els.get(0).outerHtml());
    assertEquals("<p>Three</p>", els.get(1).outerHtml());
  }
예제 #4
0
  @Test
  public void testSetText() {
    String h = "<div id=1>Hello <p>there <b>now</b></p></div>";
    Document doc = Jsoup.parse(h);
    assertEquals("Hello there now", doc.text()); // need to sort out node whitespace
    assertEquals("there now", doc.select("p").get(0).text());

    Element div = doc.getElementById("1").text("Gone");
    assertEquals("Gone", div.text());
    assertEquals(0, doc.select("p").size());
  }
예제 #5
0
 @Test
 public void testGetSiblings() {
   Document doc =
       Jsoup.parse("<div><p>Hello<p id=1>there<p>this<p>is<p>an<p id=last>element</div>");
   Element p = doc.getElementById("1");
   assertEquals("there", p.text());
   assertEquals("Hello", p.previousElementSibling().text());
   assertEquals("this", p.nextElementSibling().text());
   assertEquals("Hello", p.firstElementSibling().text());
   assertEquals("element", p.lastElementSibling().text());
 }
예제 #6
0
  @Test
  public void testManipulateTextNodes() {
    Document doc = Jsoup.parse("<p>One <span>Two</span> Three <br> Four</p>");
    Element p = doc.select("p").first();
    List<TextNode> textNodes = p.textNodes();

    textNodes.get(1).text(" three-more ");
    textNodes.get(2).splitText(3).text("-ur");

    assertEquals("One Two three-more Fo-ur", p.text());
    assertEquals("One three-more Fo-ur", p.ownText());
    assertEquals(4, p.textNodes().size()); // grew because of split
  }
예제 #7
0
  @Test
  public void appendMustCorrectlyMoveChildrenInsideOneParentElement() {
    Document doc = new Document("");
    Element body = doc.appendElement("body");
    body.appendElement("div1");
    body.appendElement("div2");
    final Element div3 = body.appendElement("div3");
    div3.text("Check");
    final Element div4 = body.appendElement("div4");

    ArrayList<Element> toMove = new ArrayList<Element>();
    toMove.add(div3);
    toMove.add(div4);

    body.insertChildren(0, toMove);

    String result = doc.toString().replaceAll("\\s+", "");
    assertEquals("<body><div3>Check</div3><div4></div4><div1></div1><div2></div2></body>", result);
  }
예제 #8
0
        public int walk(Element el) {
          Elements children = el.children();
          String tagName = el.tagName().toLowerCase();

          if (tagName.matches("h[1-6]")) {
            secIndex++;
            String secName = el.text();
            String key =
                "SectionTitle" + "/" + title + "/" + hash + "/" + new Integer(secIndex).toString();
            String value = secNameFilter(secName);
            dataStore.put(key, value);
          }

          for (Element child : children) {
            secIndex = (new Walker(secIndex)).walk(child);
          }

          return secIndex;
        }