使用JSoup用字母替换标记

时间:2013-08-21 00:21:12

标签: java html css jsoup

您好我已经尝试过这些答案:How to replace a tag using jsoupReplace 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"));
  }

感谢您的帮助。

4 个答案:

答案 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));
}