gpt4 book ai didi

java - 在 Java 中以编程方式添加

标签

转载 作者:行者123 更新时间:2023-12-02 04:14:41 25 4
gpt4 key购买 nike

我有这样的 HTML 代码:

<p> This is paragraph 1 </p>
This is paragraph 2
<p> This is paragraph 3 </p>

我将用 Java 处理上述 HTML,我希望处理后的 HTML 为:

<p> This is paragraph 1 </p>
<p> This is paragraph 2 </p>
<p> This is paragraph 3 </p>

并且可能会有包含不止一行的大段落。因此,逐行处理在这种情况下不起作用。例如,

<p> ...
...
...
</p>

可能存在这样的情况,

<p> This </p> can be <p> the case too. </p>

我需要将上面的行转换为:

<p> This </p><p> can be </p><p> the case too. </p>

我想实现这一点,因为 Jsoup 无法识别没有

标签的文本。如果 Jsoup 能够以任何方式做到这一点,我也很高兴。我不希望文档中遗漏任何文本。

最佳答案

JSoup 可以为您提供 <P> 中没有的部分。由于它们没有包含在标签中,因此它们是文本节点而不是元素。所以你应该遍历节点而不是元素。这是一个例子:

public class SimpleTest {

public static final String HTML = "<p> This is paragraph 1 </p>\n"
+ "This is paragraph 2\n"
+ "<p> This is paragraph 3 </p>";

public static void main(String[] args) {

Document doc = Jsoup.parse(HTML);

List<Node> nodes = doc.body().childNodes();

for ( Node node : nodes ) {
System.out.printf("Node of %s, %s%n", node.getClass(), node);
}
}
}

输出为:

Node of class org.jsoup.nodes.Element, <p> This is paragraph 1 </p>
Node of class org.jsoup.nodes.TextNode, This is paragraph 2
Node of class org.jsoup.nodes.Element, <p> This is paragraph 3 </p>

因此,当您想对未知节点做一些实际操作时,您应该使用 instanceof 进行测试。看看它是否是 TextNode ,一个Element或者是其他东西。然后将其转换为相关类,除了 Node 中提供的方法之外,您还可以使用它的所有方法。 .

关于java - 在 Java 中以编程方式添加 <p> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33449478/

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