Ich benutze SSAX-SXML für die Arbeit mit einer Baumstruktur, die nur die XML-Datencodierung nachahmt. Also dachte ich daran, die SXML-Darstellung direkt als Datenstruktur zu verwenden. Alles funktioniert sehr gut, und ich bekomme alle Funktionen von Standard Accessoren und XPath, die ich sehr nützlich fand.SSAX-SXML und Zahlen
Aber ich habe ein Problem. XML stellt alles als Zeichenfolgen dar, also muss ich die ganze Zeit von String zu Zahlen und umgekehrt konvertieren. Das wird Leistung und nur eine schlechte Design-Idee töten. Ich dachte daran, die SXML-Liste zu übernehmen und alle Strings in einem Durchgang in Zahlen umzuwandeln. Aber gibt es einen Weg, auf dem SXML direkt oder über XML sagt, dass etwas als Zahl und nicht als String dargestellt werden sollte?
Dies ist meine SXML Liste:
((wall (@ (uid "2387058723"))
(pt (@ (y "2.0") (x "1.0")))
(pt (@ (y "4.0") (x "3.0"))))
(wall (@ (uid "5493820876"))
(pt (@ (y "0.0") (x "0.0")))
(pt (@ (y "100.0") (x "0.0")))
(window (@ (to "0.4") (from "0.2")))
(window (@ (size "1.0") (from "0.2")))
(door (@ (size "1.0") (from "0.2"))))
(pilar (@ (uid "692034802"))
(center (@ (y "5.0") (x "5.0")))
(dim (@ (b "0.45") (a "0.3"))))
(room (@ (label "salon"))
(wall (@ (uid "2387058723")))
(wall (@ (uid "5493820876")))
(wall (@ (uid "5394501263")))
(wall (@ (uid "0034923049"))))
(entry (@ (doorNumber "0")) (wall (@ (uid "5493820876"))))
(num "0,9")
(pipe (@ (y "8.0") (x "10.0"))))
Aus einem XML-Code, wie dieser (Auszug) aussieht:
<wall uid="2387058723">
<pt x="1.0" y="2.0"/>
<pt x="3.0" y="4.0"/>
</wall>
Danke.
Ich bezweifle die Umwandlung in String und zurück wird viel mit der Gesamtleistung zu tun haben. –
Da Sie vielleicht Recht haben und keine Antworten erhalten, arbeite ich mit On-The-Fly-Conversions, und später mache ich eine vollständige On-Pass-Conversion. – alvatar
können Sie immer noch Xpath auf DOM oder VTD-XML verwenden ... SXML sieht größer aus als XML, also könnte es langsam sein –