| 91 | * Uses the browser's built-in DOMParser. |
| 92 | */ |
| 93 | export function parseXml(xmlString: string): SafeXmlNode { |
| 94 | const parser = new DOMParser() |
| 95 | const doc = parser.parseFromString(xmlString, 'application/xml') |
| 96 | |
| 97 | // Check for parser errors — DOMParser returns a parsererror document on failure |
| 98 | const errorNode = doc.querySelector('parsererror') |
| 99 | if (errorNode) { |
| 100 | logger.warn('XML parse error', { error: errorNode.textContent ?? '' }) |
| 101 | return new SafeXmlNode(null) |
| 102 | } |
| 103 | |
| 104 | return new SafeXmlNode(doc.documentElement) |
| 105 | } |