私はW3C DOMがproperty ownerElementを導入したと思いますが、MSXMLはW3C DOMに追いつこうとしていません。したがって、私が考えることができる最良のものは、親要素を見つけるためにXPathとselectSingleNodeです。ここでのJScriptとMSXML 6で行わ例である:
var doc = new ActiveXObject("Msxml2.DOMDocument.6.0");
if (doc.loadXML([
'<root>',
' <foo att="1"/>',
' <bar att="2"/>',
'</root>'
].join('\r\n')))
{
var attributes = doc.selectNodes('//@att');
for (var i = attributes.length - 1; i >= 0; i--)
{
attributes[i].selectSingleNode('..').removeAttributeNode(attributes[i]);
}
WScript.Echo(doc.xml);
}
else
{
WScript.Echo(doc.xml);
}
出力は、そうアプローチが機能
<root>
<foo/>
<bar/>
</root>
あります。私はあなたがJScriptを使用するのではなく、むしろおそらくC++を使用して、正しいインターフェイスを得るためにキャストを追加する必要があり、removeAttributeNode
のようなメソッドを公開する必要があることを理解しています。
プログラミング言語や環境はVS 2010のみに言及していないので、MSXMLはネイティブコード用です。管理された.NETコードをC#またはVB.NETで記述する場合は、名前空間System.Xml以下のクラス