import json
from collections import OrderedDict
def serialize_dom_element(element):
"""Serializes a DOM element to a JSON-compatible dictionary."""
if not hasattr(element, '__dict__'):
return str(element) # Fallback for non-element objects
data = OrderedDict()
for key, value in element.__dict__.items():
if isinstance(value, (dict, list)):
data[key] = serialize_dom_element(value) # Recursive call for nested structures
elif value is None:
data[key] = None
else:
data[key] = value
return data
def deserialize_dom_element(data):
"""Deserializes a JSON-compatible dictionary back to a DOM element."""
if data is None:
return None
if isinstance(data, dict):
return create_dom_element_from_dict(data)
else:
return data # Handle cases where it's not a dict (e.g., string)
def create_dom_element_from_dict(data):
"""Helper function to create a DOM element from a dictionary."""
element = {}
for key, value in data.items():
if isinstance(value, dict):
element[key] = create_dom_element_from_dict(value)
elif isinstance(value, list):
element[key] = [create_dom_element_from_dict(item) for item in value]
else:
element[key] = value
return element
Add your comment