2013-06-26 77 views
-1

我想要从.docx文件中存在的子表中读取特定文本。 有没有像java中支持xpath遍历或类似api的有效方法。Xpath搜索.docx

目前我尝试使用java apache poi阅读.docx(下面的代码片段),但是这样我必须基于标签'w:tr'遍历所有节点并读取节点文本值。是否有任何方法来快速检索基于searchpattern如xpath所需的数据? 。任何输入是高度赞赏。

   File myFile = new File("D:\\XLS-Pages\\TestSherwin.docx"); 
       ZipFile docxFile = new ZipFile(myFile); 
     ZipEntry documentXML = docxFile.getEntry("word/document.xml"); 
     InputStream documentXMLIS = docxFile.getInputStream(documentXML); 
     DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
     org.w3c.dom.Document doc = dbf.newDocumentBuilder().parse(documentXMLIS); 

     org.w3c.dom.Element tElement = doc.getDocumentElement(); 
     NodeList n = (NodeList) tElement.getElementsByTagName("w:tr"); 
+1

您是否尝试遵循许多Java XPath教程中的任何一个?如果是这样,将它们应用到文件时遇到了什么问题? – Gagravarr

回答

1

您可以在docx4j中使用XPath;支持基于JAXB对XPath的支持,并带来各种限制。