internalSetAttributeNSFromParser method

void internalSetAttributeNSFromParser({
  1. String? namespaceUri,
  2. required String qualifiedName,
  3. required String localName,
  4. String? value,
})

Internal method. Not part of "dart:html".

Implementation

void internalSetAttributeNSFromParser({
  String? namespaceUri,
  required String qualifiedName,
  required String localName,
  String? value,
}) {
  namespaceUri ??= '';
  value ??= 'null';
  if (!_isXml) {
    qualifiedName = qualifiedName.toLowerCase();
    localName = localName.toLowerCase();

    if (qualifiedName == 'style' && namespaceUri == '') {
      _setAttribute('style', value);
      return;
    }
  }

  _Attribute? previous;
  var attribute = _firstAttribute;
  while (attribute != null) {
    if (attribute._qualifiedName == qualifiedName) {
      attribute.value = value;
      return;
    }
    previous = attribute;
    attribute = attribute._next;
  }
  final newAttribute = _Attribute(
    namespaceUri != '',
    namespaceUri,
    qualifiedName,
    localName,
    value,
  );
  if (previous == null) {
    _firstAttribute = newAttribute;
  } else {
    previous._next = newAttribute;
  }
}