您好我已经尝试过这些答案:How to replace a tag using jsoup和Replace HTML tags using jsoup我的案例失败了。我正在使用JSoup解析一个网站,我运行了看起来很漂亮的GIF图像。幸运的是,那些gif图像具有特定的名称,例如a.gif代表字母“A”。
HTML输入:
<body>
<p><img src="http://www.example.com/images/a.gif" align="left">mong us!</p>
</body>
期望的输出:
<body>
<p>Among us!</p>
</body>
我的java代码(如下所示)不会打印预期的输出:
Document document = Jsoup.connect("http://www.example.com").get();
if(document.select("img").attr("src").contains("a.gif"))
{
document.select("img").get(0).replaceWith(new Element(Tag.valueOf("img"), "A"));
}
感谢您的帮助。
答案 0 :(得分:2)
试试这个!!
Elements elements = doc.select("img[src$=a.gif]");
for(Element element : elements)
{
element.replaceWith(new TextNode("A", null));
}
答案 1 :(得分:2)
试试这个:
Document document = Jsoup.connect("http://www.example.com").get();
if(document.select("img").attr("src").contains("a.gif"))
{
String result ="";
String src =document.select("img").attr("src").text();
result = src.replace(src,"A");
System.out.println(result);
}
答案 2 :(得分:1)
使用TextNode
代替Element
。
Document document = Jsoup.parse(html);
if (document.select("img").get(0).attr("src").contains("a.gif")) {
document.select("img").get(0).replaceWith(new TextNode("A", ""));
System.out.println(document);
}
上面的代码可以按照您的预期打印html。
答案 3 :(得分:1)
试试这个:
Document document = Jsoup.parse(html);
if (document.select("img").get(0).attr("src").contains("a.gif")) {
document.select("img").get(0).replaceWith(new TextNode("A", null));
}