gpt4 book ai didi

jsoup - 如何使用 Jsoup 保留新行?

转载 作者:行者123 更新时间:2023-12-05 00:01:29 28 4
gpt4 key购买 nike

有没有办法用 Jsoup 保留新行,(不是
)?

Document pdsc = Jsoup.connect("http://drafts.bestsiteeditor.com/promoters/dsc1387266263.txt").get();
String strText = pdsc.body().ownText();

tv.setText(strText);

TXT 文件内容来自表单文本区域提交,其中有新行。谢谢。

最佳答案

在文档中,我认为没有一种方法可以返回保留新行的文本。如果您确定要打印的文本节点,则有一个方法:getWholeText ( http://jsoup.org/apidocs/org/jsoup/nodes/TextNode.html#getWholeText() )。如果你想要整个 html,你必须提取所有文本节点(文档的递归遍历)。对于您的示例(它只有一个文本节点):

  Document pdsc = Jsoup.connect("http://drafts.bestsiteeditor.com/promoters/dsc1387266263.txt").get();
System.out.println(((TextNode) pdsc.select("body").first().childNode(0)).getWholeText());

更通用的解决方案:

private static void prinWholeText(Document doc) {
List<TextNode> textNode = getAllTextNodes(doc);
for(TextNode tn:textNode){
System.out.println(tn.getWholeText());
}
}

private static List<TextNode> getAllTextNodes(Document doc) {
List<TextNode> nodes = new ArrayList<>();
allTextNodes(doc, nodes);
return nodes;
}

private static void allTextNodes(Element element, List<TextNode> nodes) {
for(Node child: element.childNodes()){
if(child instanceof TextNode){
nodes.add((TextNode) child);
} else{
if(child instanceof Element){
allTextNodes((Element) child, nodes);
}
//implement others
}
}
}

关于jsoup - 如何使用 Jsoup 保留新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21158119/

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