我有一个包含许多xml节点的xml文档。文档具有xsi:nil="true"属性。如果我在这些节点上设置了值,则nil属性将保持不变,并且对我的xsd无效。
问题:
如何使用Delphi2006代码与xsi:nil一起删除MSXML2_TLB属性?
我试过这个:
xmlNode.attributes.removeNamedItem('xsi:nil');它运行时没有错误,但不移除属性。
发布于 2010-12-16 16:26:10
调用节点本身的IXmlDomElement.removeAttribute,而不是属性集合。表示元素的任何IXmlDomNode对象也应该实现IXmlDomElement,所以类型转换节点:
OleCheck((xmlNode as IXmlDomElement).removeAttribute('xsi:nil'));如果您使用的是XmlIntf单元而不是Microsoft,那么调用IXmlNode.SetAttributeNS。将Null作为值传递,属性将被移除:
xmlNode.SetAttributeNS('nil', 'xsi', Null);https://stackoverflow.com/questions/4460409
复制相似问题