Javascript javajsoup:提取所有文本

Javascript javajsoup:提取所有文本,javascript,java,html,parsing,jsoup,Javascript,Java,Html,Parsing,Jsoup,我有以下代码。 doc.body.text()语句不输出样式和脚本标记中的文本。我阅读了.text()函数代码,它查找TextNode的所有实例。Jsoup中的TextNode是什么 为什么脚本文本不包含在.text()输出中 String contex=“styledivscript段落正文”; 文档doc=Jsoup.parse(上下文,“UTF-8”); 字符串text=doc.body().text(); System.out.println(“测试文本:”+文本); 输出:parag

我有以下代码。 doc.body.text()语句不输出样式和脚本标记中的文本。我阅读了.text()函数代码,它查找TextNode的所有实例。Jsoup中的TextNode是什么

为什么脚本文本不包含在.text()输出中

String contex=“styledivscript段落

正文”; 文档doc=Jsoup.parse(上下文,“UTF-8”); 字符串text=doc.body().text(); System.out.println(“测试文本:”+文本);

输出:paragraphbody

为此,您需要使用
org.jsoup.select.Elements
来解析标签,如

为什么脚本文本不包含在.text()输出中

因为
script
style
有数据,而不是文本

要从
script
的数据中获取数据,请使用
getElementsByTag

Elements scriptElements = doc.getElementsByTag("script");
并通过
getWholeData

for (Element element :scriptElements ){                
    for (DataNode node : element.dataNodes()) {
        System.out.println(node.getWholeData());
    }
    System.out.println("-------------------");            
}
根据,对于
样式
脚本
标记被视为dataNode而不是textNode


.text()函数包含哪些元素?所谓元素,我指的是div、p、h等。@user8788828除了
style
script
CData
之外的所有元素。
scripts
787878
Elements scriptElements = doc.getElementsByTag("script");
for (Element element :scriptElements ){                
    for (DataNode node : element.dataNodes()) {
        System.out.println(node.getWholeData());
    }
    System.out.println("-------------------");            
}
void insert(Token.Character characterToken) {
        Node node;
        // characters in script and style go in as datanodes, not text nodes
        final String tagName = currentElement().tagName();
        final String data = characterToken.getData();

        if (characterToken.isCData())
            node = new CDataNode(data);
        else if (tagName.equals("script") || tagName.equals("style"))
            node = new DataNode(data);
        else
            node = new TextNode(data);
        currentElement().appendChild(node); // doesn't use insertNode, because we don't foster these; and will always have a
   stack.
    }