gpt4 book ai didi

java - 使用 JSOUP 解析 HTMl - 需要特定模式

转载 作者:行者123 更新时间:2023-12-01 17:31:31 24 4
gpt4 key购买 nike

我正在尝试获取标签之间的文本并保存到某个变量中,例如:在这里,我想保存 em 标签之间的值 return 。我还需要 p 标签中的其余文本,em 标签值通过 return 分配,并且p 标签值应仅返回 --> 商品、取消订单、打印收据、跟踪您的购买情况或重新订购商品。如果某个值在 em 标签之前,即使该值也应该在不同的变量中,基本上是一个 p 如果它有多个标签,那么它应该被拆分并保存到不同的变量中。如果我知道如何获取不在内部标记中的其余文本,我可以检索其余文本。

我在下面写了:下面只返回“return”,它位于“'em'标签中。这里 ep 基本上是 doc.select(p),选择 p 标签然后迭代,不确定我是否做对了,任何其他方法受到高度赞赏。

String text ="\<p><em>return </em>an item, cancel an order, print a receipt, track your purchases or reorder items.</p>"

Elements italic_tags = ep.select("em");
for(Element em:italic_tags) {
if(em.tagName().equals("em")) {
System.out.println( em.select("em").text());
}
}

最佳答案

如果您需要选择每个子文本和由不同标签包围的文本,您需要尝试选择Node而不是Element。我修改了您的 HTML 以包含更多标签,使示例更加完整:

        String text = "<p><em>return </em>an item, <em>cancel</em> an order, <em>print</em> a receipt, <em>track</em> your purchases or reorder items.</p>";
Document doc = Jsoup.parse(text);

Element ep = doc.selectFirst("p");
List<Node> childNodes = ep.childNodes();
for (Node node : childNodes) {
if (node instanceof TextNode) {
// if it's a text, just display it
System.out.println(node);
} else {
// if it's another element, then display its first
// child which in this case is a text
System.out.println(node.childNode(0));
}
}

输出:

return 
an item,
cancel
an order,
print
a receipt,
track
your purchases or reorder items.

关于java - 使用 JSOUP 解析 HTMl - 需要特定模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61112897/

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