当前位置:  开发笔记 > 编程语言 > 正文

仅在文本部分用jsoup替换字符串

如何解决《仅在文本部分用jsoup替换字符串》经验,为你挑选了0个好方法。

我发现了几个有类似问题和有价值答案的主题,但我仍然在努力解决这个问题:

我想用Jsoup解析一些html,所以我可以替换,例如,

"changeme"

changeme

,但只有当它出现在html的文本部分时,否则,如果它是标记的一部分.所以,从这个html开始:


test changeme app

我想谈谈这个:


test changeme app

我尝试了几种方法,这一方法让我更接近预期的结果:

Document doc = null;
try {
    doc = Jsoup.parse(new File("tmp1450348256397.txt"), "UTF-8");
} catch (Exception ex) {
}

Elements els = doc.body().getAllElements();
for (Element e : els) {
    if (e.text().contains("changeme")) {
        e.html(e.html().replaceAll("changeme","changeme"));
    }
}
html = doc.toString();
System.out.println(html);

但是通过这种方法,我发现了两个问题:


test changeme app

    在我引入的新元素之前和之后插入换行符.这不是一个真正的问题,因为如果我使用#change#来进行替换并且在doc.toString()之后我将它们删除它们,我将它们再次替换为所需的值(使用<>).

    真正的问题:href中的URL已被修改,我不希望它发生.

想法?谢谢.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有