0

多くのxmlノードを含むxmlドキュメントがあります。ドキュメントにはxsi:nil="true"属性があります。これらのノードに値を設定すると、nil属性は残り、xsdに対して無効になります。

質問:

xsi:nilMSXML2_TLBでDelphi2006コードを使用して属性を削除するにはどうすればよいですか?

私はこれを試しました:

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

エラーなしで実行されますが、属性は削除されません。

4

1 に答える 1

2

IXmlDomElement.removeAttribute属性コレクションではなく、ノード自体を呼び出します。要素を表すIXmlDomNodeオブジェクトも実装する必要があるIXmlDomElementため、ノードを型キャストします。

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

Microsoft DOMの代わりにXmlIntfユニットを使用している場合は、を呼び出しますIXmlNode.SetAttributeNS。値として渡すNullと、属性が削除されます。

xmlNode.SetAttributeNS('nil', 'xsi', Null);
于 2010-12-16T16:26:10.390 に答える