Удалите 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);