簡體   English   中英

JSoup不翻譯html鏈接中的&符號

[英]JSoup not translating ampersand in links in html

在JSoup中,以下測試用例應該通過,但不是。

@Test
public void shouldPrintHrefCorrectly(){
    String content=  "<li><a href=\"#\">Good</a><ul><li><a href=\"article.php?boid=1865&sid=53&mid=1\">" +
            "Boss</a></li><li><a href=\"article.php?boid=186&sid=53&mid=1\">" +
            "heavent</a></li><li><a href=\"article.php?boid=167&sid=53&mid=1\">" +
            "hellos</a></li><li><a href=\"article.php?boid=181&sid=53&mid=1\">" +
            "Mr.Jackson!</a></li>";

    Document document = Jsoup.parse(content, "http://www.google.co.in/");
    Elements links = document.select("a[href^=article]");
    Iterator<Element> iterator = links.iterator();
    List<String> urls = new ArrayList<String>();
    while(iterator.hasNext()){
        urls.add(iterator.next().attr("href"));
    }

    Assert.assertTrue(urls.contains("article.php?boid=181&sid=53&mid=1"));
}

能否請您告訴我其失敗的原因?

存在三個問題:

  1. 您斷言存在一個bovikatanid參數,但實際上稱為boid

  2. HTML源使用&而不是&amp; 在源中。 從技術上講這是無效的。

  3. Jsoup是解析&mid| 不知何故。 它應該掃描到;

要解決#1,您必須自己做。 要修復第二個問題,您必須將此問題報告給有問題的serveradmin管理員(這是他們的錯,但是,由於一般的瀏覽器都對此寬容,我想Google這樣做是為了節省帶寬)。 為了解決#3,我已經向Jsoup的人報告了一個問題 ,以了解他對此的看法。


更新 :看,喬納森(Jsoup家伙)已修復它。 它將在下一個版本中發布。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM