SQL データベースから XML ファイルを取得するスクリプトがあります。これが私がこれを行う方法です:
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")
ただし、このフィールドの内容を別のファイルにコピーしてファイルから解析した場合は機能しましたが、特定のデータベース行では解析が機能しませんでした。2 日間の「試行錯誤」の後、私は主な問題を特定しました。この方法で短い XML ファイルをクエリしても問題はないように見えますが、より大きなファイルをクエリすると、65534 文字の後に文字列が途切れてしまいます。したがって、XML ファイルの末尾が欠落しており、ファイルを解析できません。
これは、コンピューターの ODBC 接続の全体的な制限である可能性があると思いました。ただし、ODBC を使用して同じデータベースから同じ XML フィールドを取得する別のプログラムは、これを問題なく実行します。だから私はそれがR
固有の問題だと思います。
それを修正する方法はありますか?