Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何读取zip文件中的htm文件?_Java_Html_File_Zip - Fatal编程技术网

Java 如何读取zip文件中的htm文件?

Java 如何读取zip文件中的htm文件?,java,html,file,zip,Java,Html,File,Zip,我有一个包含Index.htm的zip文件。我应该阅读Index.htm的内容,并在其中找到一个日期(2011年12月),然后用这个日期创建一个目录,然后在此目录中提取zip文件 这是html文件: <HTML> <HEAD></HEAD> <BODY> <A Name="TopOfPage"></A> <TABLE Width="100%" Border="0" Cel

我有一个包含Index.htm的zip文件。我应该阅读Index.htm的内容,并在其中找到一个日期(2011年12月),然后用这个日期创建一个目录,然后在此目录中提取zip文件

这是html文件:

<HTML>    
  <HEAD></HEAD>    
  <BODY>    
  <A Name="TopOfPage"></A>    
  <TABLE Width="100%" Border="0" CellPadding="0" CellSpacing="0">    
   <TR> 
     <TD Width="30%"><A HRef="HeaderTxt/HetBCFI.htm">Het B.C.F.I.</A></TD>    
   </TR>      
  </TABLE>    
  <TABLE Width="100%" Border="0" CellPadding="0" CellSpacing="0">
   <TR> 
    <TD RowSpan="2" Width="10"></TD>
    <TD Width="70%"><STRONG><FONT Face="Arial" Size="2">Gecommentarieerd   Geneesmiddelenrepertorium</FONT></STRONG></TD> 
    <TD Width="29%" Align="Right" Class= "Datum">&nbsp;
   December 2011&nbsp;&nbsp;
  </TD>
  <TD Rowspan="2" Width="10"></TD>
 </TR>
</TABLE> </BODY> </HTML>

Gecommentarieerd Geneesmiddelenrepertorium
2011年12月
几个步骤:

  • 使用java.util.zip包并创建一个解压缩流
  • 使用XML解析器(如JSoup)遍历节点,然后
  • 使用正则表达式或带有日期解析器(如SimpleDataFormat)的正则表达式来选择日期 这就假设您要查找的日期始终位于文本节点中。

    几个步骤:

  • 使用java.util.zip包并创建一个解压缩流
  • 使用XML解析器(如JSoup)遍历节点,然后
  • 使用正则表达式或带有日期解析器(如SimpleDataFormat)的正则表达式来选择日期 这会假设您要查找的日期始终位于文本节点中。

    试试这个

  • 使用java.util.zip包
  • 使用一些html解析器(我建议)来获取日期字符串。这对你的情况会有帮助
  • 获得日期字符串后,创建所需的目录

    编辑:要删除
    ,您可以执行以下操作之一:

    • 使用包含
      的字符串创建另一个文档元素,并执行以下操作

      document.select(“:containsOwn(\u00a0)”).remove()(摘自)

    • 使用以下命令(假设要清理的字符串是
      htmlString

      Jsoup.parse(htmlString.text()

    • 使用字符串的
      replaceAll()
      函数来摆脱

      • 试试这个

      • 使用java.util.zip包
      • 使用一些html解析器(我建议)来获取日期字符串。这对你的情况会有帮助
      • 获得日期字符串后,创建所需的目录

        编辑:要删除
        ,您可以执行以下操作之一:

        • 使用包含
          的字符串创建另一个文档元素,并执行以下操作

          document.select(“:containsOwn(\u00a0)”).remove()(摘自)

        • 使用以下命令(假设要清理的字符串是
          htmlString

          Jsoup.parse(htmlString.text()

        • 使用字符串的
          replaceAll()
          函数来摆脱


          • 这是我使用的正确的结束代码:感谢大家提供了有用的提示

            public static String getDateWithinHtmlInsideZipFile(File archive) {
                  ZipFile zp = new ZipFile(archive);
                  InputStream in = zp.getInputStream (zp.getEntry ("Index.htm"));
            
                  Document doc = Jsoup.parse(in, "UTF-8", "");
            
                return doc.body().getElementsByClass("Datum").text().trim();
            }
            

            这是我使用的正确的结束代码:感谢大家提供的有用提示

            public static String getDateWithinHtmlInsideZipFile(File archive) {
                  ZipFile zp = new ZipFile(archive);
                  InputStream in = zp.getInputStream (zp.getEntry ("Index.htm"));
            
                  Document doc = Jsoup.parse(in, "UTF-8", "");
            
                return doc.body().getElementsByClass("Datum").text().trim();
            }
            

            额外步骤1.5:ZipFile zp=新ZipFile(“xxx.zip”);InputStream in=zp.getInputStream(zp.getEntry(“Index.htm”);我得到这样的结果:`2011年12月`我怎么能在我的字符串中省略呢?额外的步骤1.5:ZipFile zp=new ZipFile(“xxx.zip”);InputStream in=zp.getInputStream(zp.getEntry(“Index.htm”);我得到这样的结果:`2011年12月`I怎么能在我的字符串中省略呢?当我在我的字符串之前和结束时得到pars htm文件。如何摆脱它?更新了我的答案以解决您的问题。
            String date=doc.body().getElementsByClass(“Datum”).html().toString().replaceAll(“,”).trim()当我复制htm文件时,我会在字符串的前后得到它。如何摆脱它?更新了我的答案以解决您的问题。
            String date=doc.body().getElementsByClass(“Datum”).html().toString().replaceAll(“,”).trim()