Java 我如何检测文本已被曲目更改请求删除?
我正在使用ApachePOI读取word文件,它正在工作 我使用XWPFRun实例列表阅读文档文本,这很好 但是,如果对文档启用了跟踪更改,我还将获得已删除文本的XWPFRun实例,如果删除未被接受。我不想包括这篇文章Java 我如何检测文本已被曲目更改请求删除?,java,apache-poi,Java,Apache Poi,我正在使用ApachePOI读取word文件,它正在工作 我使用XWPFRun实例列表阅读文档文本,这很好 但是,如果对文档启用了跟踪更改,我还将获得已删除文本的XWPFRun实例,如果删除未被接受。我不想包括这篇文章 那么,有没有一种方法可以检测XWPDRun节点的跟踪更改状态,或者更好的方法可以像接受所有跟踪更改一样解析文档?XWPFRun还不支持这种方法。但我们可以确定是否有标记为已删除的文本运行 正常文本运行的XML如下所示: <w:r> <w:t>Lorem&
那么,有没有一种方法可以检测XWPDRun节点的跟踪更改状态,或者更好的方法可以像接受所有跟踪更改一样解析文档?XWPFRun还不支持这种方法。但我们可以确定是否有标记为已删除的文本运行 正常文本运行的
XML
如下所示:
<w:r>
<w:t>Lorem</w:t>
</w:r>
<w:del w:id="0" w:author="axel" w:date="2020-04-23T18:57:00Z">
<w:r w:rsidDel="00C63AEB">
<w:delText>ipsum</w:delText>
</w:r>
</w:del>
import java.io.FileInputStream;
import org.apache.poi.xwpf.usermodel.*;
public class WordReadDeletedRuns {
public static void main(String[] args) throws Exception {
String inFilePath = "./WordExample.docx";
XWPFDocument document = new XWPFDocument(new FileInputStream(inFilePath));
for (IBodyElement bodyElement : document.getBodyElements()) {
if (bodyElement instanceof XWPFParagraph) {
XWPFParagraph paragraph = (XWPFParagraph)bodyElement;
for (IRunElement runElement : paragraph.getIRuns()) {
if (runElement instanceof XWPFRun) {
XWPFRun run = (XWPFRun)runElement;
System.out.println("Text run found: " + run.text());
System.out.println(run.getText(0)); // null for deleted runs
System.out.println(run.getCTR().getRsidDel()); // null for not deleted runs, byte[] for deleted runs
System.out.println(run.getCTR().getDelTextList().size()); // empty list for not deleted runs, filled list for deleted runs
}
}
}
}
document.close();
}
}