diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c index e7f03d6..852db5e 100644 --- a/dlls/msxml3/element.c +++ b/dlls/msxml3/element.c @@ -523,8 +523,35 @@ static HRESULT WINAPI domelem_removeAttribute( IXMLDOMElement *iface, BSTR p) { - FIXME("\n"); - return E_NOTIMPL; + domelem *This = impl_from_IXMLDOMElement( iface ); + xmlAttrPtr pAttr; + xmlChar *xml_name; + xmlNodePtr element; + + TRACE("(%p)->%s\n", iface, debugstr_w(p)); + // TODO Replace if Attribute has a Default value. + + element = get_element( This ); + if ( !element ) + { + ERR("Failed to get Element\n"); + return E_FAIL; + } + + xml_name = xmlChar_from_wchar( p ); + + pAttr = xmlHasProp(element, xml_name); + + HeapFree(GetProcessHeap(), 0, xml_name); + if(!pAttr) + { + FIXME("Support Defaults Values. Attr(%s)\n", debugstr_w(p)); + return S_FALSE; + } + + xmlFreeProp(pAttr); + + return S_OK; } static HRESULT WINAPI domelem_getAttributeNode(