【问题标题】:Remove extra "a href" tag from html string从 html 字符串中删除额外的“a href”标签
【发布时间】:2014-11-07 06:05:32
【问题描述】:

我有一个这样的 html 字符串:

 <a class="favourite" href="LixWQfueLU"><a href="LixWQfueLU"><font color="#009a49">Rohit Lalwani</font></a></a>

我要制作html字符串:

<a class="favourite" href="LixWQfueLU"><font color="#009a49">Rohit Lalwani</font></a>

我该如何解决上述问题?我应该使用 JSOUP 还是 Regex?解决办法是什么?

【问题讨论】:

  • 它总是会得到两个href吗?因为我创建了一个函数而不使用Regex

标签: android html regex jsoup


【解决方案1】:

这段使用 JSoup 的代码将以更通用的方式实现这一点:

    String html ="<a class=\"favourite\" href=\"LixWQfueLU\"><a href=\"LixWQfueLU\"><font color=\"#009a49\">Rohit Lalwani</font></a></a>";
    Document doc = Jsoup.parse(html);
    Element afav = doc.select(".favourite").first();
    Element select = doc.select("font").first();
    afav.remove();
    afav.appendChild(select);
    System.out.println(afav);

输出:

<a class="favourite" href="LixWQfueLU"><font color="#009a49">Rohit Lalwani</font></a>

【讨论】:

    【解决方案2】:

    尝试使用子字符串获取所需的字符串:

    String beforeString = "<p dir=\"ltr\"> <a class=\"favourite\" href=\"LixWQfueLU\"><a href=\"LixWQfueLU\"><font color=\"#009a49\">Rohit Lalwani</font></a></a></p>";
    
    String afterString = beforeString.substring(0,beforeString.indexOf("<a href")+1)+beforeString.substring(beforeString.indexOf("<font"),beforeString.indexOf("</a>"))+beforeString.substring(beforeString.indexOf("</a>")+4,beforeString.length());
    

    afterString 的值:

    <p dir="ltr"> <a class="favourite" href="LixWQfueLU"><<font color="#009a49">Rohit Lalwani</font></a></p>
    

    【讨论】:

    • 结果是

      Rohit Lalwani

      基本上它删除了 标签并保留两个 标签
    • 新结果是:

      Rohit Lalwani 所以基本上,

      标签现在也不见了,请记住这个字符串不会是静态的,html 将永远是动态的
    • 是的,我知道字符串是动态的而不是静态的,但你必须给出可能的字符串。
    • 现在检查可以吗?
    • 新输出:

      Rohit Lalwani

    猜你喜欢
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多