Wie kann man mit R einen sehr langen XML-String aus einer SQL-Datenbank holen?
Ich habe ein Skript, um eine XML-Datei aus einer SQL-Datenbank abzurufen. So mache ich das:
library(RODBC)
library(XML)
myconn <- odbcConnect("mydsn")
query.text <- "SELECT xmlfield FROM db WHERE id = 12345"
doc <- sqlQuery(myconn, query.text, stringsAsFactors=FALSE)
doc <- iconv(doc[1,1], from="latin1", to="UTF-8")
doc <- xmlInternalTreeParse(doc, encoding="UTF-8")
Das Parsen funktionierte jedoch nicht für eine bestimmte Datenbankzeile, obwohl es funktionierte, als ich den Inhalt dieses Felds in eine separate Datei kopierte und aus der Datei analysierte. Nach zwei Tagen "Versuch und Irrtum" identifizierte ich das Hauptproblem. Es scheint, dass das Abfragen kurzer XML-Dateien auf diese Weise keine Probleme verursacht, aber wenn ich größere Dateien abfrage, wird die Zeichenfolge nach 65534 Zeichen abgeschnitten. Daher fehlt das Ende der XML-Datei und die Datei kann nicht analysiert werden.
Ich dachte, dies könnte eine allgemeine Einschränkung der ODBC-Verbindungen auf meinem Computer sein. Ein anderes Programm, das ebenfalls ODBC verwendet, um dasselbe XML-Feld aus derselben Datenbank abzurufen, führt dies jedoch problemlos aus. Also ich denke es ist einR
-spezifisches Problem.
Irgendwelche Ideen, wie man es repariert?