setAttributeNS method
Implementation
void setAttributeNS(String? namespaceUri, String name, String value) {
//
// Loosely based on:
// https://dom.spec.whatwg.org/#dom-element-setattributens
//
_validateAttributeName('setAttributeNS', namespaceUri, name);
namespaceUri ??= '';
if (!_isXml) {
name = name.toLowerCase();
if (name == 'style' && namespaceUri == '') {
_setAttribute('style', value);
return;
}
}
final qualifiedName = name;
var localName = qualifiedName;
final i = localName.indexOf(':');
if (i >= 0) {
localName = localName.substring(i + 1);
}
_Attribute? previous;
var attribute = _firstAttribute;
while (attribute != null) {
if (attribute._localName == localName &&
attribute._namespaceUri == namespaceUri) {
attribute.value = value;
return;
}
previous = attribute;
attribute = attribute._next;
}
final newAttribute = _Attribute(
true,
namespaceUri,
qualifiedName,
localName,
value,
);
if (previous == null) {
_firstAttribute = newAttribute;
} else {
previous._next = newAttribute;
}
}