gpt4 book ai didi

java - 使用 jsoup java 从 <!-- --> 注释中提取 HTML 到结束标记

转载 作者:行者123 更新时间:2023-11-30 07:12:55 25 4
gpt4 key购买 nike

我有一些 HTML 看起来像

<!-- start content -->
<p>Blah...</p>
<dl><dd>blah</dd></dl>

我需要将评论中的 HTML 提取到结束的 dl 标记中。结束 dl 是评论之后的第一个(不确定之后是否还有更多,但之前从来没有)。两者之间的 HTML 在长度和内容上是可变的,并且没有任何好的标识符。

我看到评论本身可以使用#comment 节点来选择,但是我如何获得从评论开始并以 HTML 关闭标记结束的 HTML,正如我所描述的那样?

这是我想出的方法,它有效,但显然不是最有效的。

    String myDirectoryPath = "D:\\Path";
File dir = new File(myDirectoryPath);
Document myDoc;
Pattern p = Pattern.compile("<!--\\s*start\\s*content\\s*-->([\\S\\s]*?)</\\s*dl\\s*>");
for (File child : dir.listFiles()) {
System.out.println(child.getAbsolutePath());
File file = new File(child.getAbsolutePath());
String charSet = "UTF-8";
String innerHtml = Jsoup.parse(file,charSet).select("body").html();
Matcher m = p.matcher(innerHtml);
if (m.find()) {
Document doc = Jsoup.parse(m.group(1));
String myText = doc.text();
try {
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("D:\\Path\\combined.txt", true)));
out.println(myText);
out.close();
} catch (IOException e) {
//error }
}
}

最佳答案

要使用正则表达式,可能很简单

 #  "<!--\\s*start\\s*content\\s*-->([\\S\\s]*?)</\\s*dl\\s*>"

<!-- \s* start \s* content \s* -->
([\S\s]*?)
</ \s* dl \s* >

关于java - 使用 jsoup java 从 &lt;!-- --> 注释中提取 HTML 到结束标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19917579/

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