Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中使用XSLT转换XML_Xml_R_Xslt - Fatal编程技术网

在R中使用XSLT转换XML

在R中使用XSLT转换XML,xml,r,xslt,Xml,R,Xslt,我的任务目前由SQLServerReportingServices执行,它使用XSLT将数据集导出为XML格式,XSLT将典型模式转换为定制模式。为了替换此报告,我需要能够在用户想要下载时类似地转换XML XSLT产生的最终布局非常糟糕——它涉及到填充和各种奇怪的连接,我不希望在从数据到XML的第一次转换中进行整个转换,从而重新发明轮子 我的GoogleFu让我失望了:如何使用R通过XSLT转换XML MWE 下面是一个使用iris数据并将其转换为XML的脚本(我使用来自CRAN的包纯粹是为了降

我的任务目前由SQLServerReportingServices执行,它使用XSLT将数据集导出为XML格式,XSLT将典型模式转换为定制模式。为了替换此报告,我需要能够在用户想要下载时类似地转换XML

XSLT产生的最终布局非常糟糕——它涉及到填充和各种奇怪的连接,我不希望在从数据到XML的第一次转换中进行整个转换,从而重新发明轮子

我的GoogleFu让我失望了:如何使用R通过XSLT转换XML

MWE 下面是一个使用iris数据并将其转换为XML的脚本(我使用来自CRAN的包纯粹是为了降低示例的代码级别)。然后,当我在VisualStudio中运行XML时,会转换XML,但我不知道如何将该活动转换为R

library(optiRum)
library(XML)
irisdata<-convertToXML(iris)
saveXML(irisdata,"iris.xml")
库(optiRum)
库(XML)

irisdata我认为您正在寻找
Sxslt
包,只使用示例数据

library("Sxslt")
library("XML")
files <- sapply(c("sqrt.xml", "sqrt.xsl"), function(f) system.file("examples", f, package = "Sxslt"))
然后使用
Sxslt
应用样式表

xsltApplyStyleSheet(files[1], files[2])
给予

$doc
<?xml version="1.0" standalone="yes"?>
<HTML>
  <body>
 sqrt: 3
 pow: 81
 date: Thu Jan 15 06:46:54 2015<i class="output">-0.0140224652198879</i>
  substring: an(rnor</body>
</HTML>


$stylesheet
An object of class "XSLStyleSheet"
Slot "ref":
<pointer: 0x108ef2a60>


$status
OK 
 0 

attr(,"class")
[1] "XMLInternalXSLTDocument"

您可以执行系统调用来运行java吗?如果是这样,请下载Saxon9PE并运行它。我不认为有一个原生的XSLT2.0库,我来试试!看起来只是我需要的一点工具-我只是在尝试安装它,它不是为3.1.2构建的,所以它给我带来了一些麻烦。首先,我尝试使用devtools通过repo进行安装,同样尝试从tar文件url进行安装。必须在操作系统上安装一些软件包。
致命错误:libxml/tree.h:没有这样的文件或目录。
。我很快就会回来,提供安装它所需的全部要求。建议编辑添加了指南,以回答可能遇到类似问题的人:
install.packages(“remotes”);remotes::install_github(“omegahat/Sxslt”)
太糟糕了,我不能再升级两次。
$doc
<?xml version="1.0" standalone="yes"?>
<HTML>
  <body>
 sqrt: 3
 pow: 81
 date: Thu Jan 15 06:46:54 2015<i class="output">-0.0140224652198879</i>
  substring: an(rnor</body>
</HTML>


$stylesheet
An object of class "XSLStyleSheet"
Slot "ref":
<pointer: 0x108ef2a60>


$status
OK 
 0 

attr(,"class")
[1] "XMLInternalXSLTDocument"
install.packages("remotes")
remotes::install_github("omegahat/Sxslt")