Полагаю, людям нужен некоторый опыт работы с Linq-to-xml и знание построения документа Word OpenXML.
У меня есть этот запрос Linq to XML, который должен найти элементы управления контентом.Это работает большую часть времени, но я думаю, что это все еще только присяжный и не правильно.
Как это работает, если я правильно понимаю, это то, что он проверяет StdRuns и находит, если его свойства включают один с именем Tag.
Проблема в том, что Контент Контроли, возможно, не обязательно являются частью RUN.Например, если он добавлен первым в строке.Я не хочу больше сталкиваться с проблемами позже, поэтому мне интересно, есть ли лучший способ поразить все элементы управления контентом с помощью linq.
Это теперь запрос Linq:
var cont = from sdt in document.MainDocumentPart.RootElement.Descendants<SdtRun>()
let sdtPr = sdt.GetFirstChild<SdtProperties>()
let tag = (sdtPr == null ? null : sdtPr.GetFirstChild<Tag>())
where tag != null
select new
{
SdtProps = sdtPr,
TagName = tag.GetAttribute("val", sdt.NamespaceUri).Value
};
Заранее спасибо.