从Word文档中提取所有“标题1”

问题描述:

我想从“标题1”中提取Word文档中的所有文本。 Currelenty我有以下代码:从Word文档中提取所有“标题1”

public static void Alina(String bestand, String kop) throws Exception { 
    FileInputStream fis = new FileInputStream(bestand); 
    XWPFDocument xdoc=new XWPFDocument(OPCPackage.open(fis)); 

    List<XWPFParagraph> paragraphList = xdoc.getParagraphs(); 
    int aantal = 0; 
    for (XWPFParagraph paragraph: paragraphList) {  
     if (paragraph.getStyle().equals(kop)) { 
      System.out.println("aantal keer door document :" +" " + aantal++); 
      System.out.println(paragraph.getText()); 
     } else { 
      System.out.println("Test"); 
      break; 
     } 
    } 
} 

如果我跑这一点,他只能提取两个率先“标题”,打一个空格或其他文本后退出。 有人想法解决这个问题吗? 在此先感谢。

ps。 Kop的意思是荷兰语的标题。

*编辑:如果我删除break语句,我得到了相同的输出,然后他用Exception in thread "main" java.lang.NullPointerException

退出。如果你的程序认定,不具备“KOP”风格 if(paragraph.getStyle().equals(kop))那么它将一个段落退出for loop。我认为你应该删除break,而是继续遍历所有段落并检查是否有必要的样式。

检查kop != null并妥善处理。如果您确定kop不为空,请执行以下操作。

for (XWPFParagraph paragraph: paragraphList) 
{  
    if(kop.equals(paragraph.getStyle())) 
    { 
    System.out.println("aantal keer door document :" +" " + aantal++); 
    System.out.println(paragraph.getText()); 
    } 
    else 
    { 
    System.out.println("Test"); 
    } 

}

+0

如果我删除了休息和替换它继续或只是打印他仍然被卡住空指针。 – Patrick

+0

您可以尝试以下操作:检查'paragraph.getStyle!= null',然后检查它是否等于“kop” – Naxos84

+0

谢谢'if(paragraph.getStyle()!= null)'在检查标题之前解决问题。 – Patrick