Java 如何使用Jsoup在html中添加所有元素?

Java 如何使用Jsoup在html中添加所有元素?,java,html,jsoup,Java,Html,Jsoup,我试图解析这个html文件,它保存在本地系统中并使用。但是解析并不解析所有的html。所以我无法获得我需要的信息。使用此代码仅解析6k字符,但实际上html文件有60k字符。这在jsoup中是不可能的,但有一个解决方法: File input = new File("1727209867.htm"); Document doc = Jsoup.parse(input, "UTF-8","http://www.facebook.com/people/Alison-Vella/1727209867"

我试图解析这个html文件,它保存在本地系统中并使用。但是解析并不解析所有的html。所以我无法获得我需要的信息。使用此代码仅解析6k字符,但实际上html文件有60k字符。

这在jsoup中是不可能的,但有一个解决方法:

File input = new File("1727209867.htm");
Document doc = Jsoup.parse(input, "UTF-8","http://www.facebook.com/people/Alison-Vella/1727209867");
final File input=新文件(“example.html”);
最终整数maxLength=6000;//要读取的字符的限制
InputStream is=新文件InputStream(输入);//打开文件进行读取
StringBuilder sb=新StringBuilder(最大长度);//使用所需的大小初始化“缓冲区”
整数计数=0;//已读字符数
int c;//用于阅读的字符
while((c=is.read())!=-1&&count
解释:

  • 将文件逐字符读取到缓冲区中,直到达到限制
  • 解析缓冲区中的文本并使用jsoup进行处理
  • 问题:这不会考虑关闭标签等-如果您在限制上,它将完全停止读取

    (可能的)解决方案:

    • 忽略这一点,准确地停下来,解析它并“修复”或删除挂起的html
    • 如果您在末尾,请阅读直到到达下一个结束标记或
      char
    • 如果在末尾,请阅读,直到到达下一个块标记
    • 如果你在结尾,读到一个特定的标签或注释

    我认为输入没有这么低的限制。我使用较大的输入(在其他星座中)。一定有一些不同的错误,你如何确定这个6k限制?我检查文档(documentdoc),它只有6k字符,没有完成,所以很有趣,但我通常使用EclipseIndigo来编写java。但我在Maven项目的NetBeans中尝试了相同的代码,它是有效的。Jsoup无法处理这一问题,但有一个解决方法是可能的。
    final File input = new File("example.html");
    final int maxLength = 6000; // Limit of char's to read
    
    InputStream is = new FileInputStream(input); // Open file for reading
    StringBuilder sb = new StringBuilder(maxLength); // Init the "buffer" with the size required
    int count = 0; // Count of chars readen
    int c; // Char for reading
    
    while( ( c = is.read() ) != -1 && count < maxLength ) // Read a single char until limit is reached
    {
        sb.append((char) c); // Save the char into the buffer
        count++; // increment the chars readen
    }
    
    
    Document doc = Jsoup.parse(sb.toString()); // Parse the Html from buffer