gpt4 book ai didi

java - 在文档的子字符串周围绘制一个框

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:21 25 4
gpt4 key购买 nike

我希望获得一些帮助,帮助我了解如何处理我已经尝试编写几次的程序。

我有很多文件夹。每个文件夹中都有一个 HTML 文件和一个 .txt 文件,其中包含 HTML 文件中的文本,但删除了所有 HTML 标记。

作为示例,简化的 HTML 文件可能是

<html><head></head><body><p>This is some <b>text</b></p><p>Please ignore me</p></body></html>

在同一文件夹中的 .txt 中,我有“这是一些文本”。

从这两个文件中,我想创建一个新文件,该文件是一个 HTML,并在“这是一些文本”周围绘制了一个框,如下所示:

Image of the HTML file with a box crudely drawn around "This is some text"

这里明显的问题是打印精美的文本文件不包含任何标记,因此在 HTML 文档中找到它很困难。

到目前为止我的想法是:

- 将 .txt 内容保存在变量中。- 抓取 HTML 内容,去掉所有 HTML 标签:

public static String html2text(String html) {
return Jsoup.parse(html).text();
}

我不确定从现在开始如何继续。我的意思是...我可以尝试添加一个带有围绕文本的类的 div,然后为其添加边框样式...但是如何可靠地找到 HTML 中的子字符串,保留 HTML 中的所有标记?

我确信有一个简单的方法可以做到这一点,但我只是想太多了,我通常会与 friend 讨论这个问题并解决它,但每个人似乎都离线 - 所以我来这里向您寻求指导。

有人可以提供任何反馈吗?谢谢。

最佳答案

这应该适合你:

有关 selectors 的更多信息和 setting attribute values

private void test(){
//replace with your stored variables
String html = "<html><head></head><body><p>This is some <b>text</b></p><p>Please ignore me</p></body></html>";
String txt = "This is some text";

Document doc = Jsoup.parse(html);

String query = "p:contains(" + txt + ")";
Elements htmlTxt = doc.select(query); //selects all the paragraph elements with your target txt

//Loop through each element and add a red border around it
for(Element e : htmlTxt){
System.out.println("e: " + e.toString());
e.attr("style", "border:3px; border-style:solid; border-color:#FF0000; padding: 1em;");
}
}

关于java - 在文档的子字符串周围绘制一个框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38352928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com