如何在内容控制c#中获得一个特定的表
本文关键字:一个 内容控制 | 更新日期: 2023-09-27 18:02:23
我有3个表在相同的内容控制,我如何得到第一个表并删除它?
我试过使用
SdtBlock ccWithTable = mainPart.Document.Body.Descendants<SdtBlock>().Where
(r => r.SdtProperties.GetFirstChild<Tag>().Val == tag).Single();
Table theTable = ccWithTable.Descendants<Table>().First();
ccWithTable.RemoveChild(theTable);
但是这给了我一个错误:
指定的oldChild不是此元素的子元素
我怀疑,因为表不是内容控件的子,有没有其他的方法来做到这一点?
从你的评论中,我猜你可以访问table
对象,但它不是sdtblock
的直接子对象,所以你不能用ccWithTable.RemoveChild()
方法删除它(是的,它假设要删除的项目是该元素的直接子元素的一部分)。
但是如果您可以访问表对象(即子对象),则不需要知道它的父对象。只需调用OpenXmlElement.Remove()
方法:它将从父元素中删除元素。
theTable.Remove();