繁体   English   中英

C#OpenXML确定段落是否为隐藏文本

[英]C# OpenXML Determine if paragraph is hidden text

我试图弄清楚如何确定一个段落是否具有隐藏文本。 通过互操作很容易做到,但是我似乎无法在openxml中弄清楚。 任何帮助是极大的赞赏

MainDocumentPart mdp = wordprocessingDocument.MainDocumentPart;
XDocument xDoc = mdp.GetXDocument();
IEnumerable<XElement> = xDoc.Descendants(W.p);

foreach (var paragraph in paragraphs)
{
    // I want to check if this paragraph has hidden text or not, if it does I want to skip over it.
    // if (paragraph.hasHiddenText()) { continue; }
    // else, get the content
    string paraText = paragraph.Descendants(W.t).Select(t => (String)t).StringConcatenate();

}

如果您继续使用开放的xml sdk而不是linq-to-xml,它会更容易:

MainDocumentPart mdp = wordprocessingDocument.MainDocumentPart;

foreach(var paragraph in mdp.Document.Body.Descendants<Paragraph>())
{
    ...
    string paraText = paragraph.Descendants<Run>()
                               .Where(r => r.RunProperties.Vanish != null)
                               .Aggregate("", (text,r) => text += r.InnerText);
}

尽管sdk可能会稍微慢一些,但使用起来更方便。 除非您每分钟要处理数百个文档,否则我不会担心。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM