我有一个脚本可以从 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")
但是,解析不适用于特定的数据库行,尽管当我将此字段的内容复制到单独的文件中并从文件中解析时它起作用了。经过两天的“反复试验”,我确定了主要问题。似乎以这种方式查询短 XML 文件不会导致任何问题,但是当我查询较大的文件时,字符串在 65534 个字符后被截断。因此,缺少 XML 文件的结尾,无法解析该文件。
我认为这可能是对我计算机上 ODBC 连接的总体限制。但是,另一个也使用 ODBC 从同一数据库中获取同一 XML 字段的程序可以毫无问题地执行此操作。所以我想这是一个R
特定的问题。
任何想法如何解决它?