完整答案:您可以通过以下方式获取标签外的文本
childNodes()
.这样你就可以得到
List<Node>
注意:我正在选择
body
因为您的HTML片段没有任何父元素,使用jsoup解析HTML片段会增加
<html>
和
<body>
自动。
如果
Node
仅包含其类型的文本
TextNode
您可以通过以下方式获取内容
toString()
.
否则,您可以将其投射到
Element
并使用以下命令获取文本
element.text()
.
String str = "There are <span class='newStyle'> two </span> workers from the <span class='oldStyle'>Front of House</span>";
Document doc = Jsoup.parse(str);
Element body = doc.selectFirst("body");
List<Node> childNodes = body.childNodes();
for (int i = 0; i < childNodes.size(); i++) {
Node node = body.childNodes().get(i);
if (node instanceof TextNode) {
System.out.println(i + " -> " + node.toString());
} else {
Element element = (Element) node;
System.out.println(i + " -> " + element.text());
}
}
输出:
0 ->
There are
1 -> two
2 -> workers from the
3 -> Front of House
顺便说一句:我不知道如何摆脱之前的第一次断线
There are
.