Удалите xsi:nil attibute, используя IXMLDOMDOCUMENT в Delphi.

У меня есть документ XML, который содержит много узлов XML. Документ имеет xsi:nil="true" атрибутов. Если я установлю значения на этих узлах, nil атрибут остается, и он становится недействительным в отношении моего xsd.

Вопрос:

Как мне удалить xsi:nil атрибуты, использующие код Delphi 2006 с MSXML2_TLB?

Я попробовал это:

xmlNode.attributes.removeNamedItem('xsi:nil');

Он работает без ошибок, но не удаляет атрибут.

1 ответ

Вызов IXmlDomElement.removeAttribute на самом узле, а не коллекции атрибутов. любой IXmlDomNode объект, который представляет элемент должен реализовать IXmlDomElement также, приведите тип узла:

OleCheck((xmlNode as IXmlDomElement).removeAttribute('xsi:nil'));

Если вы используете модуль XmlIntf вместо Microsoft DOM, то позвоните IXmlNode.SetAttributeNS, Проходить Null как значение и атрибут будут удалены:

xmlNode.SetAttributeNS('nil', 'xsi', Null);
Другие вопросы по тегам