1

您好,我已经尝试了这些答案:How to replace a tag using jsoup and Replace HTML tags using jsoup to my case failed。我正在用 JSoup 解析一个网站,然后运行了字母外观的 GIF 图像。幸运的是,这些 gif 图像有一个特定的名称,例如字母“A”的 egagif。

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"));
  }

谢谢您的帮助。

4

4 回答 4

3

尝试这个!!

  Elements elements = doc.select("img[src$=a.gif]");
   for(Element element : elements)
    {
      element.replaceWith(new TextNode("A", null));
    }
于 2013-08-21T16:15:11.870 回答
2

使用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。

于 2013-08-21T01:39:42.447 回答
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);

      }
于 2013-08-21T20:29:17.137 回答
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));
}
于 2013-08-21T17:36:10.367 回答