我有一个程序正在获取.docx文件并打开为.html文件但是当转换为html时,我得到的是不可读的字符串。我需要这个文件的html,因为我需要稍后解析它。当我使用下面的方法打开文件时,我得到了不可读的文本,例如:úL] iN?#tBd!?^??e“0©??? ??AäúsIp?¸ü?D?ÂÓâ€?D?½? ?Eâcr&Æl\Fâÿ2qJ?U ??IúK&þIb
FileInputStream fileInput = null;
BufferedInputStream myBuffer = null;
DataInputStream dataInput = null;
fileInput = new FileInputStream(selectedFile);
myBuffer = new BufferedInputStream(fileInput);
dataInput = new DataInputStream(myBuffer);
StringBuilder nHtmlText = new StringBuilder();
while (dataInput.available() != 0) {
System.out.println(dataInput.readLine());
nHtmlText.append(dataInput.readLine());
}
htmlText = nHtmlText.toString();
有没有办法获得一个干净的可读html文件来解析和保存?
答案 0 :(得分:1)
没有。
你正在阅读docx文件的原始内容,这不是html而是压缩xml - 请参阅here,你需要一些东西将docx翻译成html。两者截然不同。
答案 1 :(得分:1)
Docx4j是一个java库,允许您打开,读取和操作docx文件。我过去成功地使用过它。
它还能够将文件的内容导出为HTML。您可以在此处阅读更多内容:http://www.docx4java.org/svn/docx4j/trunk/docx4j/docs/Docx4j_GettingStarted.html(第docx to (X)HTML
部分大约是页面的一半)
答案 2 :(得分:0)
如果要将.docx
文件转换为.html
,则无法直接读取该文件,因为它是二进制文件。您可以使用JODConverter。我个人没有使用过这个问题,但这个问题几乎与this question重复。