SPLUS XML操作

SPLUS XML操作
 在SPLUS中,用于处理XML的有2个库,Insightful公司的SPXML库和比尔实验室的XML库
 SPXML库支持读写XML,并使用C代码写和分析XML标记,在SPLUS中,没有类似的XML对象,也不能处理XML,在这个库中,XML处理是用XSL完成的
 XML库,它引入了一组SPLUS类,用XML对象呈现,如XMLNode和XMLComment,使用DOM以建立SPLUS对象,这些对象可以方便的在SPLUS中使用
 具体使用哪个库,要看你的实际应用:
  SPXML库是有效率的,它使用SAX分析器且大部分操作用C实现
  SPXML库使用XSL来完成XML变换操作
  XML库使用内建的SPLUS对象来完成XML的变换,SPLUS程序员可能更喜欢这种操作,胜于XSL

SPXML库使用
 利用SPXML库,你可以使用createXMLFile把SPLUS对象当做XML文件保存起来,通过parseXMLFile读一个XML文件,利用XSLT或者XSL-FO来完成XML文件的变换
 SPXML库函数提供了一些有用的工具函数,如下:
  函数xml2html, xml2pdf, xml2ps, xml2rtf,  xml2xml,其利用javaXMLTransform来完成XML到不同文件类型的转换
  createXMLString函数返回一个XML串胜于写到一个文件中去
  summaryReport函数实现了汇总报表

利用SPXML库读写XML
 > library(SPXML) #加载SPXML库
 > xmlFile <- "output.xml" #指定输出路径
 > orig.list <- list(fuel.frame, c(1:50), hist) #加载数据集内容到LIST
 > createXMLFile(orig.list, xmlFile) #通过LIST建立XML文件
 > new.list <- parseXMLFile(xmlFile) #读XML文件到LIST
 > all.equal(orig.list, new.list) #比较新旧2个LIST是否相等

利用XSL来实现XML变换
 > library(SPXML)
 > logRegPMMLFile <- paste(getenv("SHOME"), "/library/SPXML/examples/xml_generation/logRegPMML.xml", sep="") #指定XML文件
 > logRegXSLFile <- paste(getenv("SHOME"),"/library/SPXML/examples/xml_generation/logReg_ColImp_Vec.xsl", sep="") #知道XSL文件
 > splusVecXMLFile <- "Splus_ColImp_Vec.xml" #知道目标XML文件
 > xml2xml(logRegPMMLFile, splusVecXMLFile, logRegXSLFile)
 > colImpVec <- parseXMLFile(splusVecXMLFile) #读目标XML文件
 > colImpVec
  
建立XML报表
 > library(SPXML)
 > xsltFile <- paste(getenv("SHOME"),"/library/SPXML/xml/SplusObjects.xsl", sep="")
 > xmlFile <- "c://temp.xml"
 > splusObject <- fuel.frame
 > createXMLFile(splusObject, xmlFile)
 > javaXMLTransform(xmlFile, "c://fuelReport.htm", xsltFile)   
 要建立PDF,RTF或者PS,需使用SplusObjects_FO.xsl
 > foFile <- paste(getenv("SHOME"), "/library/SPXML/xml/SplusObjects_FO.xsl", sep="")
 > javaXMLTransform(xmlFile, "c://fuelReport.pdf", foFile)
 > javaXMLTransform(xmlFile, "c://fuelReport.rtf", foFile)
 > javaXMLTransform(xmlFile, "c://fuelReport.ps", foFile) 
 汇总报告
  使用summaryReport函数
  > args(summaryReport)
  如:
  > reportFilename <- "fuel.report.html"
  > summaryReport(fuel.frame, reportFilename)
  也可以使用下面代码:
 > summaryReport(data=fuel.frame, file="c://fuel.report.pdf", variables=c("Weight"), grouping.variables=c("Type"))  

自定义报表输出
 如果你想改变报表输出,比如改变颜色、字体等,你可以通过修改ColumnReport.xsl(用于HTML)或者ColumnReport_FO.xsl来实现,他们位于library/SPXML/xml目录下
 改变颜色 
  <xsl:variable name="g_headerBG" select="'#CCE6FF'" />
  <xsl:variable name="g_rowBG_1" select="'#EEEEEE'" />
  <xsl:variable name="g_rowBG_2" select="'#FFFFFF'" />
 对应在XSL中的特殊字符  
 小于< &lt;
 大于> &gt;
 等于= =

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值