gpt4 book ai didi

java - 如何从 docx4j 运行中简洁地提取文本?

转载 作者:行者123 更新时间:2023-12-02 09:46:53 34 4
gpt4 key购买 nike

我想使用 docx4j 从 DOCX 文件中的 document.xml 中提取文本,如下所示:

<w:document mc:Ignorable="w14 w15 w16se wp14">
<w:body>
<w:r>
<w:rPr>
<w:rFonts w:ascii="TimesNewRomanRegular" w:hAnsi="TimesNewRomanRegular" w:cs="TimesNewRomanRegular"/>
<w:b/>
<w:sz w:val="19"/>
<w:szCs w:val="19"/>
<w:lang w:val="en-US"/>
</w:rPr>
<w:t>CEO</w:t>
</w:r>
...

我提取了运行,现在我想获取每次运行的文本。下面的代码可以工作,但非常冗长。是否可以以更简洁的方式获取 org.docx4j.wml.R 实例的文本?

public static Optional<String> runText(org.docx4j.wml.R run)
{
return run.getContent()
.stream()
.map(JAXBElement.class::cast)
.map(JAXBElement::getValue)
.filter(Text.class::isInstance)
.map(Text.class::cast)
.map(Text::getValue)
.findFirst();
}

虽然“R::getContent”和“R::getRPr”存在,但我想知道为什么文本文档中不存在“R::getText”。

最佳答案

参见https://github.com/plutext/docx4j/blob/master/docx4j-core/src/main/java/org/docx4j/TextUtils.java#L55

针对哪个 Javadoc:

/**
* Extract contents of descendant <w:t> elements.
*
* @param o
* @return String
* @since 6.0.0
*/

关于java - 如何从 docx4j 运行中简洁地提取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56581863/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com