Ich bin sicher, es sollte offensichtlich sein, aber ich konnte findenirgendwelche Hinweise auf meine Frage. Welche zugrunde liegende Technologie verwendet Scala XML? Ist es etwas DOM-ähnliches oder SAX-ähnliches oder StAX-ähnliches? Welche Leistungseinbußen muss ich bei der Verarbeitung großer Dokumente beachten? Ist StAX noch effizienter?
Danke im Voraus.
Antworten:
7 für die Antwort № 1Große Dokumente (mehrere hundert MB) können mit verarbeitet werden scala.xml.pull.XMLEventReader
. Sehen nächtlicher Scaladoc (Angenommen, Sie verwenden 2.8.) Dies ist ein Pull-Parser-Modell wie StAX.
Im Vergleich zu Java macht Scala dies im Allgemeineneigene Sache im Umgang mit XML. Das XML ist unveränderlich. Sie können XML-Literale auch direkt in Ihrem Scala-Code verwenden, wodurch der Code besser lesbar wird.
Als Antwort auf den Kommentar, XML.load
Verwendet javax.xml.parsers. {SAXParser, SAXParserFactory} als zugrunde liegende Technologie. Ich gehe auch davon aus, dass die resultierende XML in den Speicher geladen wird.
2 für die Antwort № 2
Scala macht sein eigenes Ding. Die meisten XML-Modelle sind veränderbar und lassen sich nicht gut in Unveränderlichkeit umsetzen (da sie meistens den Überblick über die übergeordneten Modelle behalten).
Hier "s ein Papier darüber.