private void writeAttributes(Element element, Iterable<Attr> attributes) throws IOException {
		for (Attr attr : attributes) {
			final String attrName = attr.getName();
			if (!enableOperatorsSerialization && Opcode.fromAttrName(attrName) != Opcode.NONE) {
				// skip operator attributes if operators serialization is disabled
				continue;
			}
			final String attrValue = attr.getValue();
			if (attrValue.isEmpty()) {
				// do not write the attribute if its value is empty
				continue;
			}
			if (attrValue.equals(HTML.DEFAULT_ATTRS.get(attrName))) {
				// do not write the attribute if it is a default one with a default value
				continue;
			}
			writeAttribute(attrName, attrValue);
		}
	}
private void writeAttributes ( Element element , Iterable < Attr > attributes ) throws IOException { for ( Attr attr : attributes ) { final String attrName = attr . getName ( ) ; if ( ! enableOperatorsSerialization && Opcode . fromAttrName ( attrName ) != Opcode . NONE ) { continue ; } final String attrValue = attr . getValue ( ) ; if ( attrValue . isEmpty ( ) ) { continue ; } if ( attrValue . equals ( HTML . DEFAULT_ATTRS . get ( attrName ) ) ) { continue ; } writeAttribute ( attrName , attrValue ) ; } }
Traverse all element's attributes and delegates {@link #writeAttribute(String, String)}. Skip operators if
{@link #enableOperatorsSerialization} is false. This method is called after element start tag was opened.

@param element element whose attributes to write.
@throws IOException if underlying writer fails to write.