在R包中使用xml2时,“外部指针无效”

dw1jzc5e  于 2023-02-10  发布在  其他
关注(0)|答案(1)|浏览(266)

我正在用golem构建一个作为R包的Shiny应用程序,其想法是帮助科学家将他们的异构领域数据转换为通用的XML格式,以提高数据标准化和互操作性。
基本架构是,我在Shiny服务器外部的global.R中定义一个空的目标XML文档,并使用xml2包作为后端,从应用程序中的各种模块和实用程序函数访问它,以添加节点和内容。
使用golem::run_dev()shiny::shinyApp的 Package 器)进行本地测试时,应用运行流畅,我可以创建、编辑和导出XML目标文档。但是,当我尝试从构建的包启动应用时,我收到以下错误:

Error in write_xml.xml_document(xml_document, tmp, options = "format") : 
  external pointer is not valid

下面是一个small example package,它重现了错误。
我知道外部指针只在相同的R会话中有效,但我不知道这与我的问题有什么关系。似乎global.R和应用程序在从包启动时运行在不同的会话中,而在本地启动时却没有?

vulvrdjw

vulvrdjw1#

我也有类似的问题:使用read_xml()导入XML文件的包会产生错误阅读external pointer is not valid”。在我的情况下,一个可能的解决方案是克隆源包,然后在本地会话中运行pkgname/R中的所有文件。这不是包应该如何操作,但只要没有更优雅的解决方案,我会推荐这种方法。

相关问题