gpt4 book ai didi

java - JSoup 不翻译 html 链接中的 & 符号

转载 作者:太空宇宙 更新时间:2023-11-04 08:43:36 28 4
gpt4 key购买 nike

在 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 源代码在源代码中使用 & 而不是 &。这在技术上是无效的。

  3. Jsoup 正在将 &mid 解析为 | 。它应该一直扫描到 ;

要解决第一个问题,您必须自己解决。要修复#2,您必须向相关服务器管理员报告此问题(但是,这是他们的错,因为普通浏览器对此很宽容,我想 Google 这样做是为了节省带宽)。为了修复 #3,我报告了 an issue向 Jsoup 的人询问他对此有何看法。

<小时/>

更新:看,乔纳森(Jsoup 的人)已经修复了它。它将在下一个版本中出现。

关于java - JSoup 不翻译 html 链接中的 & 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4793347/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com