【问题标题】:List of Paragraphs doesn't contain full content段落列表不包含全部内容
【发布时间】:2019-03-15 20:00:54
【问题描述】:

我已经差不多 3 天在寻找这个问题的解决方案了。我有一个带有占位符的 Word 文档。我们有自己的实现,如何解析 word 文档模板并用内容替换占位符。但是我遇到了一个问题,该段落列表不包含 word 文档中的所有内容。 我得到了 OpenXmlPartRootElement 的所有 Paragraph 类型后代。

var paragraphs = document.Descendants().OfType<Paragraph>().ToList();

然后我正在检查特定的占位符。

paragraphs.Count(x => x.InnerText.Contains("some placeholder"));

文档中有 3 个相同的占位符,但此语句仅找到其中两个。这会破坏所有文档,因此它被解析了一半。

Word 文档中的占位符和文本存储在表格中。

这是库中的某种错误还是我应该考虑以不同的方式获取内容?

【问题讨论】:

  • 您需要提供有关本文档结构的更多信息。没有“找到”的段落在哪里?例如,它们是否在文本框(绘图对象)中?不知道这一点,就不可能提供帮助。尝试查看原始 Word Open XML 并找到这些占位符。
  • 可能与此处描述的问题有关 - stackoverflow.com/questions/28697701/openxml-tag-search/…
  • 文档的结构只有一个非常大的简单表格,有 4 列。我们稍微改变了解析器的实现。但在那之后,解析器仍然没有找到一些文本。移动文本、删除行和添加新行很有帮助。所以 Word 表肯定有问题,我仍然无法弄清楚。

标签: c# ms-word openxml openxml-sdk


【解决方案1】:

尝试在 Contains 方法中指定区域性。

【讨论】:

  • 这没有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 2014-11-03
相关资源
最近更新 更多