1

如何在 c# 中使用 openxml 找到与段落相关的选项卡数?

例如:

     test paragraph1
              test paragraph2

想象第一段有一个制表符空间,第二段有两个制表符空间。我想在 c# 中使用 open xml 找到类似的东西,但是如何?

这个帖子有关系吗?

c-sharp-tab-escape-character

转义序列

4

1 回答 1

0

Open XML 将使用闲置的 xml 在段落中包含选项卡

<w:r>
  <w:tab />
  <w:t>Paragraph one</w:t>
</w:r>

以下代码将满足您在 C# 中的要求:

XNamespace W = @"http://schemas.openxmlformats.org/wordprocessingml/2006/main";
using (
    WordprocessingDocument document =
        WordprocessingDocument.Open(@"YourDocPath\tabs_in_text.docx", true))
{
    var body = document.MainDocumentPart.Document.GetFirstChild<Body>();
    var paras = body.Elements<Paragraph>();

    foreach (var para in paras)
    {
        //Ver. 1
        //var xml = XElement.Parse(para.OuterXml);
        // var count = xml.Descendants(W + "tab").Count();

        //Ver. 2
        var tabElements = para.Descendants<TabChar>();
        var count = tabElements.Count(); // Collect the counts into array or dictionary for your usage.
    }
}

希望这可以帮助。

于 2013-01-28T16:31:39.837 回答