I have an xml document that contains many xml nodes. The document has xsi:nil="true" attributes. If I set values on these nodes, the nil attribute remains and it becomes invalid against my xsd.
Question:
How do I remove the xsi:nil attributes using Delphi 2006 code with the MSXML2_TLB?
I tried this:
xmlNode.attributes.removeNamedItem('xsi:nil');
It runs without an error, but does not remove the attribute.
Call
IXmlDomElement.removeAttributeon the node itself, not the attribute collection. AnyIXmlDomNodeobject that represents an element should implementIXmlDomElementas well, so type-cast the node:If you're using the XmlIntf unit instead of the Microsoft DOM, then call
IXmlNode.SetAttributeNS. PassNullas the value and the attribute will be removed: