繁体   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