C# OpenXML LeafElement InnerXml может иметь только значение null или пустую строку.C#

Место общения программистов C#
Anonymous
C# OpenXML LeafElement InnerXml может иметь только значение null или пустую строку.

Сообщение Anonymous »

Я использую библиотеку OpenXML .NET для работы с документом WordprocessingML. Мне нужно заменить/установить текст для элемента , но когда я делаю это следующим образом: Element.InnerXml = value, я получаю эту ошибку: System.InvalidOperationException: 'Этот InnerXml OpenXmlLeafElement может может быть установлено только значение NULL или пустая строка.'. Я просмотрел документацию, но она кажется неполной и не упоминает эту ошибку. Такое поведение уникально для некоторых конечных узлов (на данный момент я обнаружил его только с Text/), так как я могу без проблем установить родительский InnerXml.
В настоящее время я использую обходной путь, при котором я заменяю родительский InnerXml, но мне кажется, что он очень хакерский (и не сработает). в некоторых случаях)

Код: Выделить всё

var Parent = Element.Parent ?? throw new InvalidOperationException("Leaf node without parent!");
int childIndex = Parent.ChildElements.Select((elem, i) => (elem, i)).First((e) => e.elem == Element).i;
Parent.InnerXml = Parent.InnerXml.Replace(">" + Element.InnerXml + "" + value + "

Подробнее здесь: [url]https://stackoverflow.com/questions/78689577/c-sharp-openxml-leafelement-innerxml-can-only-be-set-to-null-or-to-an-empty-stri[/url]

Вернуться в «C#»