使用 docx4j 解析 DOCX 时如何检测 org.docx4j.wml.instrText?

How can I detect org.docx4j.wml.instrText when parsing DOCX with docx4j?

我想用 docx4j 库解析一个 docx 文件。

我需要检测 org.docx4j.wml.instrText 对象,但实际上它是 returns org.docx4j.wml.Text 而不是 org.docx4j.wml.instrText.

我在这里找到了一个适用于旧版本库的解决方案:

http://www.docx4java.org/forums/docx-java-f6/can-i-just-don-t-load-contents-of-w-instrtext-into-text-t193.html

实际上这个解决方案:

 ((javax.xml.bind.JAXBElement)((org.docx4j.wml.Text) o).getParent()).getName().getLocalPart()

但是最新的更新不起作用。你能告诉我我必须对这段代码做哪些修改吗?

实际上它会导致无法将 org.docx4j.wml.R 转换为 JAXBElement.

的类型转换错误

提前致谢。

Text 对象的父对象,由:

 ((org.docx4j.wml.Text) o).getParent()
正如错误所说,

是一个 org.docx4j.wml.R,您不能将其转换为 JAXBElement.

要在这种情况下识别您的对象,请尝试:

((javax.xml.bind.JAXBElement)o).getName().getLocalPart()