当前位置: 首页 > 知识库问答 >
问题:

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

梁丘远航
2023-03-14

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

<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>
...
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”。

共有1个答案

方增
2023-03-14

参见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
 */
 类似资料:
  • 问题内容: 我正在尝试使用提取此 PDF文件中包含的文本。 我正在使用PyPDF2模块,并具有以下脚本: 运行代码时,得到以下输出,该输出与PDF文档中包含的输出不同: 如何提取PDF文档中的文本? 问题答案: 要从PDF提取文本,请使用以下代码

  • 问题内容: 如何 使用PHP 从PDF文档中提取文本? (我不能使用其他工具,我没有root用户访问权限) 我发现一些函数可用于纯文本,但是它们不能很好地处理Unicode字符: http://www.hashbangcode.com/blog/zend-lucene-and-pdf-documents-part-2-pdf- data-extraction-437.html 问题答案: 下载 c

  • 问题内容: 下面的代码检查和是不同的值(变量,,只能有值,或),并且如果是这样,套到第三个字符: 能否以更简洁,可读和有效的方式做到这一点? 问题答案: 我假设您的代码中的三种情况之一成立。在这种情况下,该集合将由单个元素组成,由返回。 编辑: 正如Raymond Hettinger在评论中所建议的那样,您还可以使用元组拆包从集合中提取单个元素:

  • 我有一个Excel工作表,其中一栏填充了专利号。我需要提取每个相应专利的标题,并将其放在专利号旁边的单元格中。因此,代码应执行以下操作: 访问espacenet.com并打开需要名称的专利号。 获取标题。 将其放在所需单元格的Excel工作表中。 这是一个完美适用于第一个专利号的代码,但在这之后会立即出现错误。错误显示:“运行时错误'-2147417848(80010108)': 自动化错误调用的

  • 我面临的例外情况如下: java.lang.nosuchmethoderror:org.apache.xml.utils.DefaulTerrorHandler.(Z)V在org.docx4j.org.apache.xalan.transformer.transformerIdentityImpl.(TransformerIdentityImpl.transformerIdentityImpl.(

  • 问题内容: 我在Go中建立了一个简单的队列。它使用内部切片来跟踪其元素。通过附加到切片将元素推入队列。我想通过删除中的第一个元素来实现。 在许多其他语言中,“弹出”列表的第一个元素是一个单行,这使我相信下面的实现是草率而冗长的。有没有更好的办法? 请注意,如果,我会感到恐慌。我不检查界限不是疏忽大意。 问题答案: 你尝试过这些吗? 从队列弹出 从堆栈弹出 推 来自:https : //code.g