Элементы «ProofError», вызывающие проблемы в OpenXML - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь прочитать текстовый документ, используя Open XML.Я ищу ключевые теги в документе, чтобы определить значения, которые мне нужно получить из документа.

Я перебираю каждый абзац, а затем каждый прогон в документе, чтобы найти эти,Однако, похоже, что проверка орфографии и грамматики вызывает проблемы, разделяя «прогоны» внутри документов с любыми ошибками, которые он идентифицирует с элементами «ProofError», что затрудняет правильный анализ документа.

Я попытался удалить все элементы ProofError и сохранить документ, однако они возвращаются.Если я запускаю проверку орфографии и грамматики в MS Word вручную, это не проблема, хотя это не практично.

Кто-нибудь знает, как мне это обойти?

Образец текста изdoc:

Система связи: UID 0, CW (0);Частота: 900 МГц; Рабочий цикл: 1: 1 Среда: 900 МГц HSL Используемые параметры среды: f = 900 МГц;σ = 0,979 См / м;εr = 40,68;ρ = 1000 кг / м3

Код, использованный для изучения документа

using (WordprocessingDocument wordDocument = WordprocessingDocument.Open(openFileDialog.FileName, false))
{
    // start looking through the file here
    // correct proof errors here
    Body body = wordDocument.MainDocumentPart.Document.Body;
    foreach (Paragraph p in body.OfType<Paragraph>())
    {
        p.GetType();
        List<ProofError> errList = new List<ProofError>();
        foreach (ProofError err in p.OfType<ProofError>())
        {
            errList.Add(err);
        }
        foreach (ProofError err in errList)
        {
            err.Remove();
        } 
    }
    wordDocument.Save();
}

Приведенный выше код удалит любой из элементов ProofError из списка, я надеюсь, что при выполнении этого исохранение его объединит все похожие прогоны вместе, однако при сохранении возвращаются ошибки проверки.

На приведенном ниже снимке экрана должны отображаться дочерние элементы абзаца.Ссылка на пример документа, который выдает ошибки - это из-за неправильного языка, но я не могу контролировать формат, поступающий мне, и будут другие ошибки, не связанные с языком.

Paragraph Children

Образец файла

...