From 45f09705a341bdd89f771840fdc274feabeb3ca5 Mon Sep 17 00:00:00 2001 From: Stefan Oltmann Date: Tue, 27 Aug 2024 10:24:12 +0200 Subject: [PATCH] Use xmlStreaming API (#31) use xmlStreaming --- .../kotlin/com/ashampoo/xmp/internal/DomParser.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/internal/DomParser.kt b/src/commonMain/kotlin/com/ashampoo/xmp/internal/DomParser.kt index f8066bb..0130b8e 100644 --- a/src/commonMain/kotlin/com/ashampoo/xmp/internal/DomParser.kt +++ b/src/commonMain/kotlin/com/ashampoo/xmp/internal/DomParser.kt @@ -1,8 +1,8 @@ package com.ashampoo.xmp.internal import com.ashampoo.xmp.XMPException -import nl.adaptivity.xmlutil.DomWriter import nl.adaptivity.xmlutil.EventType +import nl.adaptivity.xmlutil.ExperimentalXmlUtilApi import nl.adaptivity.xmlutil.XmlUtilInternal import nl.adaptivity.xmlutil.dom2.Document import nl.adaptivity.xmlutil.writeCurrent @@ -12,7 +12,7 @@ internal object DomParser { private const val RDF_RDF_END = "" - @OptIn(XmlUtilInternal::class) + @OptIn(XmlUtilInternal::class, ExperimentalXmlUtilApi::class) fun parseDocumentFromString(input: String): Document { /* @@ -37,7 +37,9 @@ internal object DomParser { try { - val writer = DomWriter() + val document = xmlStreaming.genericDomImplementation.createDocument() + + val writer = xmlStreaming.newWriter(document) val reader = xmlStreaming.newReader(trimmedInput) @@ -46,7 +48,7 @@ internal object DomParser { reader.writeCurrent(writer) } while (event != EventType.END_DOCUMENT) - return writer.target + return document } catch (ex: Exception) { throw XMPException("Error reading the XML file: ${ex.message}", XMPErrorConst.BADSTREAM, ex)