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.removeAttribute
on the node itself, not the attribute collection. AnyIXmlDomNode
object that represents an element should implementIXmlDomElement
as well, so type-cast the node:If you're using the XmlIntf unit instead of the Microsoft DOM, then call
IXmlNode.SetAttributeNS
. PassNull
as the value and the attribute will be removed: