2017-03-09 57 views
1

如何区分表格内外的元素?另外,如何验证没有内容控制名称的表?获取OpenXML中表格元素内外的元素

+0

你有什么尝试?你在使用特定的库或SDK吗?你是直接在xml上工作吗? –

+0

还没有尝试过任何成功。 这是我的代码 'tags = mainPart.Document.Body.Descendants ()。 其中(t => t.Parent.LocalName ==“tr”)。 选择(t => t.SdtProperties.GetFirstChild ().Val).ToList();' 但它是不正确的,因为我正在寻找表父母,而不是tr,我需要验证表父母是被块元素包围。 我正在使用OpenXML 4.0库。 –

+0

请修改您的帖子以包含您尝试过的内容 –

回答

1

我建议你使用Linq To XML。在MSDN上有一个Word文档的example console application that displays all paragraph text

接近底部的是注释 - 查找文档中的所有段落 - 这是Linq To XML块,它从Word文档的正文中提取段落。

// Find all paragraphs in the document. 
    var paragraphs = 
     from para in xDoc 
        .Root 
        .Element(w + "body") 
        .Descendants(w + "p") ... 

取而代之的是"p",你将需要使用"tbl"。这是如何收集文档中的所有表格以验证其内容。要检查每行和每列将涉及更多的代码来循环表数据,但这应该让你开始。

如果您安装了Open XML Productivity Tool,则可以查看任何Open XML文档的所有xml。下面的屏幕显示了带有包含表格的Word文档的工具。

[enter image description here]

左窗格显示在Word文档的典型表的结构。右边是Open XML Table规范。该工具可帮助您了解要读取的内容以及在将您的liq写入xml代码以读取和验证表中的数据时要忽略的内容。

如果你有一个特定的表格格式,你需要为你的项目阅读而且你被卡住了,在另一个问题中发布表格和你试过的代码。否则根据你的原始问题,这个答案应该足以帮助你开始解决你的问题。