我想使用 docx4j 从 DOCX 文件中提取所有粗体文本,但我得到一个类转换异常,代码如下:
import java.util.List;
import javax.xml.bind.JAXBException;
import org.docx4j.Docx4J;
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.wml.Text;
public class Main
{
public static void main(String[] args) throws Docx4JException, JAXBException
{
var wordMLPackage = Docx4J.load(new java.io.File("input.docx"));
var doc = wordMLPackage.getMainDocumentPart();
System.out.println((Text)doc.getJAXBNodesViaXPath("//w:r[w:rPr/w:b]/w:t", false).get(0));
}
}
错误是:
线程“主”java.lang.ClassCastException 中的异常:类 javax.xml.bind.JAXBElement 无法转换为类 org.docx4j.wml.Text(javax.xml.bind.JAXBElement 和 org.docx4j.wml.Text 在Main.main(Main.java:37) 处加载程序“app”的未命名模块
为什么出现“w:t”不是一个实例org.docx4j.wml.Text
以及我如何获取文本?