提问人:ykoo 提问时间:5/23/2022 更新时间:5/23/2022 访问量:57
从 R 访问 S3 存储桶时出现“xmlParseCharRef”错误,如何解决?
I get 'xmlParseCharRef' error when accessing S3 bucket from R, how to fix it?
问:
> sessionInfo()
R version 3.6.0 (2019-04-26)
Platform: x86_64-redhat-linux-gnu (64-bit)
Running under: Amazon Linux 2
Matrix products: default
BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
other attached packages:
[1] aws.ec2metadata_0.2.0 aws.s3_0.3.21
[3] paws_0.1.12
loaded via a namespace (and not attached):
[1] httr_1.4.2 compiler_3.6.0 R6_2.5.1
[4] paws.storage_0.1.12 tools_3.6.0 base64enc_0.1-3
[7] curl_4.3.2 aws.signature_0.6.0 xml2_1.3.3
[10] digest_0.6.29 jsonlite_1.8.0 paws.common_0.3.17
> Sys.setenv('AWS_DEFAULT_REGION'='ap-northeast-2')
> bucket_exists("my-bucket")
[1] TRUE
> mybucket <- get_bucket("my-bucket")
read_xml.raw(charToRaw(enc2utf8(x)), “UTF-8”, ..., as_html = as_html, 中的错误: xmlParseCharRef:无效的 xmlChar 值 8 [9]
-> 可以很好地检查存储桶的存在,但在尝试访问实际存储桶时发生错误。
如何解决这个问题?
什么是问题?
答:
1赞
Michael Kay
5/23/2022
#1
问题在于 XML 1.0 不允许将 Unicode 代码点 8 作为有效的 XML 字符,无论它是否作为字符引用编写。
XML 1.1 确实允许这样做,但 XML 1.1 并未被广泛采用。
与所有未通过 XML 解析的传入文档一样,您的选择是修复发送方,使其不会生成错误的 XML(首选),或者在到达时修复错误的 XML(使用接受非 XML 输入的工具,例如 Perl/sed)。在修复它之前,您需要知道发送应用程序为什么在文档中包含一个,以及它希望收件人对它执行什么操作。u0008
评论
0赞
ykoo
5/24/2022
我需要在 s3 上修复什么?
0赞
Michael Kay
5/24/2022
我不知道,我只是告诉你错误消息是什么意思。
评论