parse method

Parses XML content with layout metadata extraction.

Returns a LayoutAwareParseResult containing both the parsed data map and key-level metadata for preserving layout information.

xml - The XML string to parse

Implementation

LayoutAwareParseResult parse(String xml) {
  if (xml.isEmpty) {
    return const LayoutAwareParseResult(data: {});
  }

  try {
    final document = XmlDocument.parse(xml);
    final rootElement = document.rootElement;

    final result = _parseElement(rootElement);

    return LayoutAwareParseResult(
      data: result.data,
      keyMeta: result.keyMeta.isEmpty ? null : result.keyMeta,
    );
  } catch (e) {
    throw FormatException(TurboConstants.failedToParseXml(e));
  }
}